将不同的ID复制到列表中

Jai*_*dra 2 c# list

我有4个列表,像这样:

List <Emp> l1 = new List<Emp>();
List <Emp> l2 = new List<Emp>();
List <Emp> l3 = new List<Emp>();
List <Emp> l4 = new List<Emp>();
Run Code Online (Sandbox Code Playgroud)

Emp有一个名为的属性id,如何获得所有四个列表中存在的所有不同ID的列表?

Hen*_*man 5

你需要MoreLinq为DistinctBy:

 IEnumrable<Emp> uniqueEmps = l1.Concat(l2).Concat(l3).Concat(l4)
                                .DistinctBy(e => e.id);
Run Code Online (Sandbox Code Playgroud)

对于Id的:

 IEnumrable<int> uniqueIds = l1.Concat(l2).Concat(l3).Concat(l4)
                               .Select(e => e.id).Distinct();
Run Code Online (Sandbox Code Playgroud)


das*_*ght 5

如何获得所有四个列表中所有不同ID的列表?

如果要查找ID列表(而不是Emp具有这些ID的对象),可以使用简单查询来执行此操作:

var ids = l1.Concat(l2).Concat(l3).Concat(l4).Select(e => e.Id).Distinct();
Run Code Online (Sandbox Code Playgroud)