lambdainLinq/LeftOuterJoininMethodSyntax可能重复:Howtoperformleftouterjoinwithlinqextensionmethod我找不到Linqlambda左边外连接示例(使用扩展方法),至少不是显式连接示例。假设我有下表:Parent{PID//PK}Child{CID//PKPID//FKText}我想将Parent与Child连接起来,对于每个丢失的孩子,我希望Text的默认值为“[[空的]]”。如何使用linqlambda语法执行此操作?我目前有以下内容:varsource=lParent.GroupJoin(lChild,p=>p.PID,c=>c.PID,(p,g)=>new//ParentChildJoined{PID=p.PID;//如何我要在这里添加子值吗?});你很接近[Empty]]":varsource=lParent.GroupJoin(lChild,p=>p.PID,c=>c.PID,(p,g)=>g.Select(c=>new{PID=p.PID,CID=c.CID,Text=c.Text}).DefaultIfEmpty(new{PID=p.PID,CID=-1,Text="[[Empty]]"})).SelectMany(g=>g);frompinParentjoincinChildonp.PIDequalsc.PIDintogfromcing.DefaultIfEmptyselectnew{p.PID,CID=c!=null?(int?)c.CID:null,//CouldbenullText=c!=null?c.Text:"[[Empty]]"}使用lambda:以上就是C#学习教程分享的全部内容:lambdainLinq/leftouterjoininmethod语法,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注—classChildResult{publicintPID{get;set;}publicint?CID{get;set;}publicstringText{get;set;}}lParent.SelectMany(p=>p.Childs.Any()?p.Childs.Select(c=>newChildResult(){PID=c.PID,CID=c.CID,Text=c.Text}):new[]{newChildResult(){PID=p.PID,CID=null,Text="[[Empty]]"}});注明出处:
