2013-01-04 72 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

相關問題