我想使用LINQ在List中查找一組數據對象。我目前正在迭代集合來找到我需要的東西。在列表中使用LINQ
我已經在網上搜索和閱讀了很多例子,但我無法理解它做我需要的東西。
我想要搜索的數據對象在我的代碼中稱爲「屬性」。 屬性具有「屬性」的通用列表。一個屬性有一個通用的字符串列表,它有兩個項目,一個名稱和一個值。
數據在表:
與填充屬性的Property_Data
{
Attribute {name="Color" value=""}
Attribute {name="Size" value=""}
Attribute {name="Width" value=""}
Attribute {name="Display" value=""}
}
實施例屬性
My_Property
Color = black
Size = 12
Width = 2
Display = True
下面是我使用的代碼,其中我遍歷每個屬性對象,然後我迭代的集合中的每個項搜索屬性的屬性名稱爲「Display」,值爲「True」。
foreach (IPropertyData prop_data in Properties)
{
if (prop_data.Attributes.Find(a => a.Name == "Display").Value == "True")
{
// do something here
}
}
我要學習的是如何搜索使用LINQ所以我不必每次迭代屬性,然後屬性的屬性屬性數據的收集對象的事情。
這是我在它的嘗試:
IEnumerable<IPropertyData> prop_datas = Properties
.Where(p => p.Attributes.Where(a => a.Name == "isDisplayable" && a.Value == "True");
我是什麼後,對屬性集合搜索的方式,而不是每個單獨的屬性數據對象。我已經更新了我的問題,包括我在LINQ上的嘗試。請注意,我正在搜索「屬性」對象,而不是遍歷每個屬性。 –
檢查我所做的兩個更新。 – dotnetstep
喬恩Skeet有一堆名爲edulinq的博客文章,非常適合真正瞭解LINQ的工作方式。 http://codeblog.jonskeet.uk/category/edulinq/。值得學習所有這些方法,以使它們成爲第二性質。 –