我知道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