我想使用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/。值得学习所有这些方法,以使它们成为第二性质。 –