注意 下面的代码只要ID相同(即使其他的不相同)都会过滤掉,简单来讲就是过滤掉ID相同的实体,如果ID相同,其他属性取第一个的值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 |
List<Abc> list = new
List<Abc>(); Abc abc1 = new
Abc(); abc1.Id = 1; abc1.Name = "张三" ; abc1.Value = "a" ; list.Add(abc1); Abc abc2 = new
Abc(); abc2.Id = 1; abc2.Name = "张三" ; abc2.Value = "b" ; list.Add(abc2); Abc abc3 = new
Abc(); abc3.Id = 1; abc3.Name = "张三" ; abc3.Value = "a" ; list.Add(abc3); Abc abc4 = new
Abc(); abc4.Id = 1; abc4.Name = "张三" ; abc4.Value = "e" ; list.Add(abc4); Abc abc5 = new
Abc(); abc5.Id = 1; abc5.Name = "张三" ; abc5.Value = "c" ; list.Add(abc5); list = list.GroupBy(o => o.Id).Select(p => new
Abc { Id = p.Key, Name = p.FirstOrDefault().Name, Value = p.FirstOrDefault().Value }).ToList(); |
结果 只有 list.count=1 id=1,Name="张三", Value="a"
关于Linq的对List<实体>去掉重复ID的一个小例子!,布布扣,bubuko.com
原文:http://www.cnblogs.com/yingger/p/3607971.html