回答

收藏

Linq在两个对象上的完全外部联接

技术问答 技术问答 249 人阅读 | 0 人回复 | 2023-09-12

我有两个名字CountryMobility我相信我需要将其与完整的外部连接结合起来。我怎么用?linq这样做?* h5 u" ^: Q' l! l
public class CountryMobility{    public string countryCode { get; set;    public int inbound { get; set;    public int outbound { get; set; }}我想这样组合两个对象:: P& k* @& o. a6 K; N
inboundStudents:countryCode | inbound | outbound         EG |   2    |           CA |    3    |           CH |   5    |     0outboundStudents:countryCode | inbound | outbound         PE |   0    |                                                              CA |   0    |     4                              CH |   0    |    5                      -                      -                      -                      -                      VcombinedStudents:countryCode | inbound | outbound         PE |   0    |                                                              CA |    3    |     4                              CH |   5    |    5         EG |   2    |     0我试过以下几点linq句子,但找不到正确的语法。我目前在两个句子中temp.DefaultIfEmpty(new {first.ID,inbound =
  s# |' }; Q, N+ D+ L9 m0,outbound = 0})附近收到语法错误。
" b% c$ A, T) s' ]* _7 U4 {8 Lvar leftOuterJoin =     from first in inboundActivities    join last in outboundActivities    on first.countryCode equals last.countryCode    into temp    from last in temp.DefaultIfEmpty    (new { first.countryCode,inbound = 0,outbound=   select new CountryMobility                                                                                                                                                                                                                 countryCode = first.countryCode,       inbound = first.inbound,       outbound = last.outbound,   };var rightOuterJoin =     from last in outboundActivities    join first in inboundActivities    on last.countryCode equals first.countryCode    into temp    from first in temp.DefaultIfEmpty    (new { last.countryCode,inbound = 0,outbound = 0 })   select new CountryMobility                                                                                                                                                                                                                 countryCode = last.countryCode,       inbound = first.inbound,       outbound = last.outbound,   };var fullOuterJoin = leftOuterJoin.Union(rightOuterJoin);               
2 q' |3 a; |( l3 o    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则