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

 我来答
freeeeeewind
推荐于2017-10-04 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1347万
展开全部

新定义一个类,这个类包含两个已有类成员以及共有的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就是合并后的集合。
我爱李沛霞
2012-11-05 · TA获得超过896个赞
知道小有建树答主
回答量:385
采纳率:100%
帮助的人:167万
展开全部
新建一个类,属性为这两个类的对象,然后用list来装这个新建的类就好了、
追问
我那么干了 可是运行错误的?list赋值是直接list.add(类对象),还有addall都是错误的,你知道原因不。我是新建了一个类,所有的变量为public。然后在另一个类里面定义,赋值。最后添加到list,想问下这错哪了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式