Ich weiß, LINQ hat eine SequenceEquals
Methode. Diese Methode stellt sicher, dass jeder Elementwert in jeder Sammlung in der gleichen Reihenfolge übereinstimmt.Gibt es eine LINQ-äquivalente Methode?
Was ich suche ist eine "äquivalente" Art der Funktionalität. Nur dass beide Sequenzen dieselben Elemente enthalten, nicht unbedingt in der gleichen Reihenfolge.
Zum Beispiel hat nUnit CollectionAssert.AreEqual()
und CollectionAssert.AreEquivalent()
, die tun, was ich erkläre.
Ich weiß, dass ich das tun kann entweder durch:
- Bestellen die Listen vor der Zeit und mit
SequenceEquals
Intersect
verwendet, dann zu sehen, wenn der Schnittpunkt zu der ursprünglichen Sequenz entspricht.
Beispiel:
var source = new[] {5, 6, 7};
source.Intersect(new[] {5, 7, 6}).Count() == source.Length;
Es ist ein Fehler in dem Beispiel der Antwort. Sie müssen es mit beiden Werten vergleichen, andernfalls würde Ihre Funktion 'wahr' zurückgeben, wenn die Quelle eine Teilmenge des Ziels ist. I.e. Quelle {5,6} und Ziel {5,7,6} – cellik