C#将3个列表与Linq连接
我想加入3个具有以下格式的列表:C#将3个列表与Linq连接,c#,linq,list,join,merge,C#,Linq,List,Join,Merge,我想加入3个具有以下格式的列表: List1: CountryID | CountryData | regionUID =================================== 12 | Has good gras | 4567 12 | nice weather | 6789 16 | stormy weather | 1234 List2: CountryID | CountryName
List1:
CountryID | CountryData | regionUID
===================================
12 | Has good gras | 4567
12 | nice weather | 6789
16 | stormy weather | 1234
List2:
CountryID | CountryName
=======================
12 | green hill
16 | stormy mountain
List3:
regionUID | regionName
=======================
4567 | above 1000feet
6789 | on the ground
1234 | on the hill
输出应如下所示:
CountryName | CountryData | regionName
==============================================
green hill | Has good gras | above 1000feet
green hill | nice weather | on the ground
stormy mountain | stormy weather | on the hill
地区独特且国家可以容纳多条线路的地方您想要这样的东西:
var list1 = new []{
new { CountryID = 12, CountryData = "Has good gras", regionUID = 4567 },
new { CountryID = 12, CountryData = "nice weather", regionUID = 6789 },
new { CountryID = 16, CountryData = "stormy weather", regionUID = 1234 }};
var list2 = new []{
new { CountryID = 12, CountryName = "green hill"},
new { CountryID = 16, CountryName = "stormy mountain"}
};
var list3 = new []{
new {regionUID = 4567, regionName = "above 1000feet"},
new {regionUID = 6789, regionName = "on the ground"},
new {regionUID = 1234, regionName = "on the hill"}
};
var result = from m1 in list1
join m2 in list2 on m1.CountryID equals m2.CountryID
select new { m2.CountryName, m1.CountryData, m1.regionUID } into intermediate
join m3 in list3 on intermediate.regionUID equals m3.regionUID
select new { intermediate.CountryName, intermediate.CountryData, m3.regionName};
RW如果您只是对LINQ连接的语法感兴趣,请参阅在Google中简单地键入
使用LINQ c连接列表
将返回大量关于此问题的好答案-1由于没有研究工作。