我想要得到distinct人员名单中的名单。
List<Person> plst = cl.PersonList;
如何做到这一点LINQ
。我想将结果存储在List<Person>
Distinct()
会给你不同的值 - 但除非你已经覆盖Equals
/ GetHashCode()
你会变得与众不同参考。例如,如果你想要两个Person
如果对象的名称相等,则需要重写Equals
/GetHashCode
来表明这一点。 (理想情况下,实施IEquatable<Person>
以及只是压倒性的Equals(object)
.)
然后你需要打电话ToList()
将结果返回为List<Person>
:
var distinct = plst.Distinct().ToList();
如果你想通过某些特定的属性来获得不同的人,但这不是“自然”平等的合适候选者,你要么需要使用GroupBy
像这样:
var people = plst.GroupBy(p => p.Name)
.Select(g => g.First())
.ToList();
或使用DistinctBy
方法来自MoreLINQ:
var people = plst.DistinctBy(p => p.Name).ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)