[英]LINQ Where filtering with lists
我有这样的代码:
.Where(o => o.Parents.Contains(name))
上面的代码不起作用,因为Parents
包含一个Parent
对象列表,而Parent
对象又有一个属性Name
。 我想检查Name
属性,但它是一个列表,所以我该怎么做这个检查? 因此, Where
列表中的任何Parent
对象将Name
属性设置为name
时,我希望Where
为true
。
有一个简单的解决方法:使用更多的LINQ。
.Where(o => o.Parents.Any(p => p.Name == name))
作为替代方案,您可以使用稍微冗长(但同样懒惰)
.Where(o => o.Parents.Select(p => p.Name).Contains(name))
请尝试以下代码段:
.Where(o => o.Parents.Any(p => p.Name == name))
您可以使用.Any检查要检查特定属性的对象集合中的特定条件。
.Where(o => o.Childs.Any(child => child.Name == o.Name));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.