C# Linq 去重-GroupBy、Select 巧对类去重

  • C# Linq 去重-Select、Distinct 对唯一性的认定
  • C# Linq 去重-GroupBy、Select 巧对类去重

假设

我们从数据库表中读取了值,存在类中,由于不断地读取、添加,可能造成重复,我们的规则是 Id 重复,则重复,如何利用 Linq 快速去重呢?

看代码

public class C
{
	public int Id { get; set; }
	public string Name { get; set; }


	public C(int id, string name)
	{
		Id = id;
		Name = name;
	}
}


C c1 = new C(1, "a");
C c2 = new C(2, "b");
C c3 = new C(3, "c");
C c4 = new C(4, "d");
C c5 = new C(1, "a");
List<C> list = new List<C>();
list.Add(c1);
list.Add(c1);
list.Add(c2);
list.Add(c3);
list.Add(c4);
list.Add(c5);
Response.Write(list.Count); // 6
var list2 = list.GroupBy(m => m.Id ).Select(m => m.First()).ToList();
Response.Write(list2.Count); // 4

核心

  • GroupBy(m => m.Id)

  • Select(m => m.First())

  • C# Linq 去重-Select、Distinct 对唯一性的认定
  • C# Linq 去重-GroupBy、Select 巧对类去重

你可能感兴趣的