繁体   English   中英

LINQ使用列表过滤的位置

[英]LINQ Where filtering with lists

我有这样的代码:

.Where(o => o.Parents.Contains(name))

上面的代码不起作用,因为Parents包含一个Parent对象列表,而Parent对象又有一个属性Name 我想检查Name属性,但它是一个列表,所以我该怎么做这个检查? 因此, Where列表中的任何Parent对象将Name属性设置为name时,我希望Wheretrue

有一个简单的解决方法:使用更多的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM