我知道LINQ有一個SequenceEquals
方法。此方法確保每個集合中的每個項目值都以相同的順序匹配。有沒有LINQ等價的方法?
我在找的是一個更「等同」的功能類型。只是這兩個序列包含相同的項目,不一定按相同的順序。
例如,nUnit有CollectionAssert.AreEqual()
和CollectionAssert.AreEquivalent()
可以做我正在解釋的。
我知道,我可以通過這樣做:
- 提前訂購名單,並使用
SequenceEquals
- 使用
Intersect
,然後看是否交點等於原序列。
例子:
var source = new[] {5, 6, 7};
source.Intersect(new[] {5, 7, 6}).Count() == source.Length;
有回答的例子是錯誤的。您需要將其與兩種計數進行比較,否則當源是目標的子集時,您的函數將返回「真」。即源{5,6}和目標{5,7,6} – cellik 2013-11-13 11:50:26