[英]Merge two lists element wise in C#
我有两个相同类别和相同长度的列表。 我希望基于自定义函数逐个元素地合并它们。
我想合并出现在列表中相同位置的那些元素对。
我有以下两个列表:
public class classA
{
public classA() { }
public int id { get; set; }
public string email { get; set; }
public string name { get; set; }
}
var users1 =
new List<classA> {
new classA{
id= 1,
email = "Test1@Test.com"
},
new classA{
id= 2,
email = "Test2@Test.com"
}
};
var users2 =
new List<classA> {
new classA{
id= 456,
email = "Test1@Test.com",
name = "Test One"
},
new classA{
id= 123,
email = "Test2@Test.com",
name = "Test Two"
}
};
我希望合并它们以获得以下列表:
{
{
id=1,
email="Test1@Test.com",
name="Test One"
},
{
id=2,
email="Test2@Test.com",
name="Test Two"
}
}
就像其他人在评论中建议的那样,我认为您正在寻找的 LINQ 方法是Zip
var users3 = users1.Zip(users2,
(first,second) => new classA{id = first.id, email = first.email, name = second.name});
以上将创建一个新列表,该列表从第一个列表中获取id
和email
以及从第二个列表中获取name
。 列表的顺序与合并的方式有关,我只是选择以这种方式处理合并,以获得您说想要的示例输出。 我将留给您来弄清楚您的实际合并规则应该是什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.