如何解决在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
。列表的顺序对于事物的合并方式很重要,我只是选择以这种方式处理合并,以获得所需的示例输出。我将留给您了解实际的合并规则。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。