两个对应不同类的list怎么合并为一个list,两个类有共同的id

如题所述

新定义一个类,这个类包含两个已有类成员以及共有的Id。然后,遍历原有List集合查找Id匹配对象。找到后,生成新定义类的实例并放入合并List集合。

举例如下(C#):

// 原有类1
public class Class1
{
    public int Id { get; set; }
    //其余代码略……
}

// 原有类2
public class Class2
{
    public int Id { get; set; }
    //其余代码略……
}

// 定义一个类,包含Class1和Class2实例引用
public class Compound
{
    public int Id { get; set; }
    pubiic Class1 C1 { get; set; }
    pubiic Class2 C2 { get; set; }    
}

合并两个不同类集合。合并操作使用了泛型列表List<T>和Linq

using System.Collections.Generic;
using System.Linq;

// 原有类1列表集合
List<Class1> listClass1 = ……;

// 原有类2列表集合
List<Class2> listClass2 = ……;

// 合并
List<Compound> mergedList = new List<Compound>();
// 遍历listClass1
foreach(Class1 c1 listClass1)
{
    // 从listClass2中查找Id匹配的对象
    Class2 c2 = listClass2.Find(e=>e.Id == c1.Id);
    if(c2 != null)
    {
        //在listClass2中找到匹配的对象,添加到合并集合mergedList中
        Compound x = new Compound(){Id=c1.Id, C1=c1, C2=c2};
        mergedList.Add(x); 
    }
}
// List<Compound> mergedList就是合并后的集合。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-05
新建一个类,属性为这两个类的对象,然后用list来装这个新建的类就好了、追问

我那么干了 可是运行错误的?list赋值是直接list.add(类对象),还有addall都是错误的,你知道原因不。我是新建了一个类,所有的变量为public。然后在另一个类里面定义,赋值。最后添加到list,想问下这错哪了

相似回答