根据其可枚举属性查找项目

时间:2017-01-30 14:08:45

标签: c# linq

我有一个List,其中Item对象里面有一个List。我可以使用内置的Find of the list来返回其中包含特定Data对象集的Item吗?

像(像Psuedo一样的代码):

users = List<Item>(new Item {name = "Bob, data = new List<Data>()}, new Item {name = "Bill", data = new List<Data>()})

users.Find(i => i.data.key == "foo" && i.data.value == "bar")

2 个答案:

答案 0 :(得分:3)

您可以在linq-expression中使用linq-expression。例如:

users.Find(i => i.data.Any(a => <your condition>))

答案 1 :(得分:3)

FindList<T>的具体方法,但IEnumerable<T>具有相同的扩展方法,即FirstOrDefault包含在System.Linq命名空间中,您可以使用它是这样的:

users.FirstOrDefault(i => i.data.key == "foo" && i.data.value == "bar")

但是如果你只使用List<T>那么你要选择的并不重要。