将具有不同元素的两个列表组合到一个列表中,其中包含c#

时间:2017-08-18 03:53:25

标签: c# c#-5.0

我有两个不同的列表 geocode1 geocode2 两行记录。 geocode1 有4列,即地址,城市,邮编和街道。 geocode2 有4列,即latitute,经度,状态和县

使用addrange合并它们,如下所示:

 geocode1.Addrange.(geocode2)

导致geocode1有8列(这是我想要的)但是有10行,前五个包含第一个列表中的值(geocode1),最后五个包含来自第二个列(geocode2)的值。 (比如SQL中的外连接)

我希望有8列但是5行,两个列表的元素组合在一起就像SQL中的内连接一样。任何人都可以为我提供解决方案吗?

1 个答案:

答案 0 :(得分:5)

你需要拉链:

var result = geocode1.Zip(geocode2, (c1, c2) => new ModelName
         {
           Address = c1.Address,
           City = c1.City,
           Zip = c1.Zip
           Street. c1.Street,
           Latitute = c2.Latitude
           Longitude = c2.Longitude,
           Status = c2.Status,
           Country = c2.Country
         }).ToList(); 

确保两个列表具有相同的长度,因为Zip将遵循最短列表。