C# 比较两个列表<;字符串>;在C中使用LINQ#

C# 比较两个列表<;字符串>;在C中使用LINQ#,c#,linq,list,C#,Linq,List,根据值、顺序和值数比较两个列表的最佳方法是什么。所以下面所有的列表都应该是不同的 var list1 = new List<string> { "1", "2" }; var list2 = new List<string> { "2", "1" }; var list3 = new List<string> { "1", "2", "3" }; var list1=新列表{“1”,“2”}; var list2=新列表{“2”,“1”}; var list

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

var list1 = new List<string> { "1", "2" };
var list2 = new List<string> { "2", "1" };
var list3 = new List<string> { "1", "2", "3" };
var list1=新列表{“1”,“2”};
var list2=新列表{“2”,“1”};
var list3=新列表{“1”、“2”、“3”};

我喜欢Zip,但您仍然需要手动比较计数

lista.Count() ==listb.Count() && lista.Zip(listb, Equals).All(a=>a);
用这个怎么样

它来自命名空间
System.Linq
,可用于任何
IEnumerable

您还可以向其传递一个
IEqualityComparer
,例如,还可以执行以下操作:

var d = new [] { "a", "B" };
var e = new [] { "A", "b" };

Console.WriteLine(d.SequenceEqual(e, StringComparer.OrdinalIgnoreCase)); // true

比较通常意味着确定顺序。你只是想确定平等,对吧?我想我是的。我想根据这些标准检查列表是否相等。可能重复谢谢,你说的长度是什么意思?我是说计数,我已经包括了它Hanks weston,所以现在它将处理所有标准?尽管使用序列相等。我不知道那件事。
var d = new [] { "a", "B" };
var e = new [] { "A", "b" };

Console.WriteLine(d.SequenceEqual(e, StringComparer.OrdinalIgnoreCase)); // true