如何清除List<>中的元素它们在 c# 中彼此相似
我有一个列表,但在这个列表中有很多具有相同值的元素。我想清除具有相同值并且具有每个元素组之一的值。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我有一个列表,但在这个列表中有很多具有相同值的元素。我想清除具有相同值并且具有每个元素组之一的值。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
如果您尝试合并两个列表,
您可以使用
Union
。您还可以使用
Concat
和Distinct
来完成此操作:如果您尝试从一个对象列表中删除重复项,
您可以使用
与
。IEqualityComparer
不同如果您尝试合并多个对象列表并删除重复项,
您可以将
Union
与IEqualityComparer
结合使用。If you're trying to merge two lists
You can use
Union
.You could also use
Concat
andDistinct
to accomplish this:If you're trying to remove duplicates from one list of objects
You can use
Distinct
with anIEqualityComparer<>
.If you're trying to merge multiple lists of objects and remove duplicates
You can use
Union
with anIEqualityComparer<>
.如果您使用的是 3.5+,则可以使用 Linq 来完成此操作:
这假设列表值是一个基元或实现 IComparable 的对象。
If you are using 3.5+ you can use Linq to accomplish that:
This assumes that the list value is a primitive or an object that implements IComparable.
你可以将它们放入一个集合中,只要你声明了 #equals 来进行正确的比较,就可以强制执行唯一性。
you could put them into a set, which enforces uniqueness, as long as you have #equals declared for correct comparison.
在 C# 4.0 中使用 Distinct 扩展方法:
更新:
如果您的类型是引用类型,请使用:
In C# 4.0 use Distinct extension method:
Update:
if your type is reference type use:
您可以使用 linq :
You could use linq :