如何解决将linq与包含c#
我有一个名为ExportedPhotoresult exportedPhotoresult
的对象,其中包含一个对象Article article
。该类型为article的对象包含另一个对象IEnumrable<ArticleDescriptionDetails> DescriptionDetails
。最后一个具有三个属性string Code
,string Value
和bool Hidden
。
如果exportedPhotoresult
不为空或为空,并且DescriptionDetails.Code
等于'hidden',我想写一个返回DescriptionDetails.Code
的方法
我写这段代码
foreach (var dd in exportedPhotoresult.Article.DescriptionDetails)
if (!dd.Code.isNullorEmpty() && dd.Hidden == hidden)
return exportedPhotoresult;
return null
是否可以使用Linq重写此代码?
我以此方式尝试
return exportedPhotoresult.Article.DescriptionDetails
.Where( x=>
!string.IsNullOrEmpty(x.Code) &&
x.Hidden == hidden
)
但这显然是错误的。
解决方法
您可以测试Any()
元素是否与表达式匹配;
return (exportedPhotoresult.Article.DescriptionDetails
.Any(dd => !string.isNullorEmpty(dd.Code) && dd.Hidden == hidden))
? exportedPhotoresult
: null;
但是由于您要返回父对象,因此我不会再尝试简化表达式了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。