比较两个List<在c#中使用LINQ

本文关键字:LINQ List 两个 比较 | 更新日期: 2023-09-27 18:01:22

根据顺序数目比较两个列表的最佳方法是什么?所以下面所有的列表应该是不同的。

var list1 = new List<string> { "1", "2" };
var list2 = new List<string> { "2", "1" };
var list3 = new List<string> { "1", "2", "3" };

比较两个List<在c#中使用LINQ

使用SequenceEqual如何?

见http://ideone.com/yZeYRh

var a = new [] { "1", "2", "3" };
var b = new [] { "1", "2" };
var c = new [] { "2", "1" };
Console.WriteLine(a.SequenceEqual(b)); // false
Console.WriteLine(a.SequenceEqual(c)); // false
Console.WriteLine(c.SequenceEqual(b)); // false

它来自命名空间System.Linq,可以在任何IEnumerable上使用。

您也可以将它传递给IEqualityComparer,例如:

var d = new [] { "a", "B" };
var e = new [] { "A", "b" };
Console.WriteLine(d.SequenceEqual(e, StringComparer.OrdinalIgnoreCase)); // true

我喜欢Zip,但是您仍然需要手动比较Count。

lista.Count() ==listb.Count() && lista.Zip(listb, Equals).All(a=>a);
相关文章: