您可以使用Tuple 来存储信息,并使用Zip 方法从两个列表中获取信息,就像这样
List<Tuple<string, string>> bothLists = Name.Zip(Address, (n, a) => new Tuple<string, string>(n, a)).ToList();
但我认为最好的方法是创建一个与您的域相关的类:
public class Person
{
public string Name { get; set; }
public string Address { get; set; }
}
然后
List<Person> bothLists = Name.Zip(Address, (n, a) => new Person{Address = a, Name = n}).ToList();
但是,如果您有多个列表,则需要嵌套多个 Zip,这并不美观。如果您确定所有列表都具有相同数量的元素,只需遍历它们即可。
在 LINQ 中:
List<Person> multipleLists = Name.Select((t, i) => new Person
{
Name = t, Address = Address[i], ZipCode = ZipCode[i]
}).ToList();
没有 LINQ(说真的,for 循环没有任何问题)
List<Person> multipleLists = new List<Person>();
for (int i = 0; i < Name.Count; i++)
{
multipleLists.Add(new Person
{
Name = Name[i],
Address = Address[i],
ZipCode = ZipCode[i]
});
}
如果您不想上课,也可以使用Tuple<string, string, string, [...]>。