List无法去重解决方案
-
使用循环,判断每个元素是否重复
-
使用表达式
list<user> users=new users.Where((x,i)=>users.FindIndex(z=>z.name == x.name) == i) -
List中的元素实现IEquatabe接口,并提供Equals方法和GetHashCode方法
//定义MasterGroupLink类 public class MasterGroupLink { public Guid? MasterGroupId { get; set; } public int? LinkType { get; set; } public List<MasterConditons> Detaillinks { get; set; } } //定义MasterGroupLinkCompare类 继承 IEqualityComparer public class MasterGroupLinkCompare : IEqualityComparer<MasterGroupLink> { public bool Equals(MasterGroupLink x, MasterGroupLink y) { return x.MasterGroupId.Equals(y.MasterGroupId) && x.LinkType.Equals(y.LinkType); } public int GetHashCode(MasterGroupLink obj) { return 0; } }现在存在一个MasterGroupLink的list :MasterGroup 可以直接调用方法去重
MasterGroup = MasterGroup.Distinct(new MasterGroupLinkCompare ()).ToList();
本文探讨了在.Net环境中,针对List无法直接通过.Distinct方法有效去重的解决方案。建议通过循环判断、使用表达式或者确保列表元素实现IEquatable接口并重写Equals和GetHashCode方法来实现去重功能。以MasterGroupLink的list MasterGroup为例,展示了去重操作的应用。
2276

被折叠的 条评论
为什么被折叠?



