将C#集合复制到另一个集合

时间:2015-11-25 14:51:07

标签: c#

我有以下列表/集合,我需要将其复制到另一个列表中。但是列表没有相同数量的参数。但是对象和类型的名称是相同的。这是班级

头等舱:

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)。 List2有一个额外的参数标识符。 如何在C#??

中实现

3 个答案:

答案 0 :(得分:2)

如果类型Ext.define('MyApp.override.Internationalization',{ override:'Ext.Component', initialize: function () { me.callOverridden(arguments); // Your code here. } }); Class1正式无关,则必须手动执行转换,这可以使用Linq完成,如下所示。

Class2

答案 1 :(得分:1)

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);
}

答案 2 :(得分:0)

var l1 = new List<Class1>();
var l2 = new List<Class2>();

l2.AddRange(l1.Select(i=>new Class2() {locationID = i.locationID,
                                       locationName = i.locationName});