当前位置: 首页 > 编程语言 > C#

条件Linq在嵌套对象上选择分享

时间:2023-04-11 01:37:35 C#

C#学习教程:嵌套对象上的条件Linq选择放;}publicstringDescription{}publicIEnumerableTestBCollection{get;放;}}publicclassTestB{publicintTestBId{get;放;}publicintFkTestAId{得到;放;}公共字符串描述{得到;放;}}Lista=newList(){newTestA(){TestAId=1,Description="测试ADescription",TestBCollection=newList(){newTestB(){TestBId=10,FkTestAId=1,Description="TestBDescription"//因为匹配FK所以必须用这个}}}};我正在尝试在TestA上选择描述属性,但如果TestB中有一个值,其中TestAId==FkTestAId我想选择TestB描述,如果没有匹配的b.Description您可以使用DefaultIfEmpty重载来使用b.Description:vardescriptions=a.Select(x=>x.TestBCollection.Where(b=>b.FkTestAId==x.TestAId).Select(b=>b.Description).DefaultIfEmpty(x.Description).First());First是安全的,永远不会抛出异常,因为我已经为“子查询”中不匹配的情况指定了回退值,所以不需要FirstOrDefault评论中提到的附加要求:我希望它默认为nulliftherecorddoesn'texistorTestBDescriptionisnullorempty然后你需要修改里面的Where:以上是C#学习教程:ConditionalLinqselectshareonnestedobjects如果对你有用,需要了解更多C#学习教程,希望大家多多关注——.Where(b=>b.FkTestAId==x.TestAId&&!string.IsNullOrEmpty(b.Description))本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: