2013-01-04 36 views
2

Enumerable.Distinct方法是否会从实施IEnumerable的集合中删除所有重复项,即使它未被排序?在使用Enumerable.Distinct之前,需要对IEnumerable进行排序?

我来自C++的背景,并想知道Distinct行为类似于C++ unique algorithm序列必须排序。

+1

关注关闭评论和downvote? – nabulke

+0

我没有downvote,但我想你的问题是downvoted,因为它写了比刚刚写'new [] {1,3,2,2,3,1} .Distinct()。Dump(); '在[LINQPad](http://www.linqpad.net/)自己测试一下:-) – sloth

+1

@DominicKexel:让它在一个简单的例子中工作,并且_knowing_它每次都会工作是两回事。感谢Linqpad的链接不知道,听起来相当有用:-) – nabulke

回答

4

即使排序没有排序,Enumerable.Distinct方法是否会从实现IEnumerable的 集合中删除所有重复项?

是的。

请注意,您需要实现IEqualityComparer<T>接口以及它的EqualsGetHashCode自定义类型的方法。

+0

+1击败了我 – Habib

+0

感谢您的快速回答。 – nabulke

相关问题