Linq在特定属性上的DISTIVE()我正在玩LINQ来学习它,但是当我没有一个简单的列表时,我想不出如何使用DISTION(一个简单的整数列表非常容易,这不是问题)。如果我想用什么独树一帜的对象列表上一或更多对象的属性?示例:如果对象是Person,有财产Id..我怎么才能让所有的人Distinct对他们的财产Id那个物体?Person1: Id=1, Name="Test1"Person2: Id=1, Name="Test1"Person3: Id=2, Name="Test2"我怎么才能得到个人1和个人3呢?这有可能吗?如果LINQ是不可能的,那么有一个列表的最好方法是Person取决于.NET 3.5中的某些属性?
4 回答
蛊毒传说
TA贡献1895条经验 获得超3个赞
如果我想获得一个基于 一或 更多财产?
List<Person> distinctPeople = allPeople .GroupBy(p => p.PersonId) .Select(g => g.First()) .ToList();
List<Person> distinctPeople = allPeople .GroupBy(p => new {p.PersonId, p.FavoriteColor} ) .Select(g => g.First()) .ToList();
皈依舞
TA贡献1851条经验 获得超3个赞
List<Person> pList = new List<Person>();/* Fill list */var result = pList.Where(p => p.Name != null).GroupBy(p => p.Id).Select(grp => grp.FirstOrDefault());
where
groupby
select
- 4 回答
- 0 关注
- 475 浏览
添加回答
举报
0/150
提交
取消