正在将C#集合复制到另一个集合
本文关键字:集合 复制 另一个 | 更新日期: 2023-09-27 18:24:14
我有以下列表/集合,需要将其复制到另一个列表中。但列表中的参数数量并不相同。但是对象的名称和类型是相同的。这是类
头等舱:
public class Class1
{
int locationID{get;set;}
string locationName{get;set;}
}
二等:
public class Class2
{
int locationID{get;set;}
string locationName{get;set;}
string identifier{get;set;}
}
在我的方法中,我需要获取List1的值,并将其复制到List2(Class2)。清单2有一个额外的参数标识符。这是如何在C#中实现的??
如果类型Class1
和Class2
在形式上不相关,则必须手动实现转换,可以使用Linq如下所示。
var NewList
= OldList.Select(
x => new Class2{ locationID = x.locationID, locationName = x.locationName }
).ToList();
var l1 = new List<Class1>();
var l2 = new List<Class2>();
l2.AddRange(l1.Select(i=>new Class2() {locationID = i.locationID,
locationName = i.locationName});
Class1和Class2是两个不同的对象和签名,不能只是从一个复制到另一个。您需要做的是迭代一个列表,装入一个新对象,复制属性值,并将其添加到另一个列表中。
var firstList = GetFirstList() //returns List<Class1>();
var secondList = new List<Class2>();
foreach(var first in firstList)
{
var second = new Class2();
second.locationID = first.locationID;
second.locationName = first.locationName;
//you could even set the identifier property here
second.identifier = someValue;
secondList.Add(second);
}