将某些属性从两个列表复制到第三个列表中

时间:2017-07-16 23:35:15

标签: c#

我有一个清单A

A类{id,name,location,post,station,status,rank}

我有一个清单B

B班{性别,等级}

我想要列表A和列表B应该合并并复制到列表C上。所以列表C将是这样的

C类{id,name,status,gender,level}

1 个答案:

答案 0 :(得分:-2)

首先:引用一个类和一个具有相同名称的列表令人困惑。我将其称为listAclass A

如果listAlistB共享属性以合并它们,则无法执行此操作。

如果class B{id, gender, level}组成,其中idid class A相同,则可以执行以下操作:

var bDic = listB.ToDictionary(a => a.id, a => a); // for faster searching
var listC = listA.Select(a => new C()
{
   id = a.id,
   name = a.name,
   status = a.status,
   gender = bDic[a.id].gender,
   level = bDic[a.id].level,
}
.ToList();