将两个具有不同元素的列表组合成一个列表,其中包含所有元素和 C# 中的 SAME 索引
Combining two lists with different elements to one list with all elements and SAME index in c#
我有两个不同的列表 geocode1 和 geocode2 都是 5 行记录。
geocode1 有 4 列,即地址、城市、邮编和街道。
geocode2 有 4 列,即纬度、经度、状态和县
使用 addrange 合并它们,如下所示:
geocode1.Addrange(geocode2)
结果 geocode1 有 8 列(这是我想要的)但有 10 行,前五列包含第一个列表 (geocode1) 中的值,最后五列包含第二个列表 (geocode2) 中的值。 (就像 SQL 中的外连接)
我希望有 8 列 5 行,两个列表的元素组合在一起,就像 SQL 中的内部联接一样。谁能给我提供解决方案?
你需要 zip:
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 将遵循最短的列表。
我有两个不同的列表 geocode1 和 geocode2 都是 5 行记录。 geocode1 有 4 列,即地址、城市、邮编和街道。 geocode2 有 4 列,即纬度、经度、状态和县
使用 addrange 合并它们,如下所示:
geocode1.Addrange(geocode2)
结果 geocode1 有 8 列(这是我想要的)但有 10 行,前五列包含第一个列表 (geocode1) 中的值,最后五列包含第二个列表 (geocode2) 中的值。 (就像 SQL 中的外连接)
我希望有 8 列 5 行,两个列表的元素组合在一起,就像 SQL 中的内部联接一样。谁能给我提供解决方案?
你需要 zip:
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 将遵循最短的列表。