我有一个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")
答案 0 :(得分:3)
您可以在linq-expression中使用linq-expression。例如:
users.Find(i => i.data.Any(a => <your condition>))
答案 1 :(得分:3)
Find
是List<T>
的具体方法,但IEnumerable<T>
具有相同的扩展方法,即FirstOrDefault
包含在System.Linq
命名空间中,您可以使用它是这样的:
users.FirstOrDefault(i => i.data.key == "foo" && i.data.value == "bar")
但是如果你只使用List<T>
那么你要选择的并不重要。