c# - 在 C# 中使用 LINQ 比较两个 List<string>

标签 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" };

最佳答案

如何使用 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

关于c# - 在 C# 中使用 LINQ 比较两个 List<string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23442398/

相关文章:

c# - 为什么以及何时使用事件?

c# - 在 LINQ 中反转嵌套集合

c# - 为什么在 lambda 表达式中调用委托(delegate)函数时会保留参数 i ?

c# - List<T>.Add(T) 的最佳重载方法匹配有一些无效参数

python - 如何在循环中过滤 Python 3 中的数字列表并更改列表长度

Python:如何转换列表多组数组

c# - 在 Visual Studio 2019 中是否有为每个项目启用 'Fade Unused Usings' 和 'Remove and Sort Usings' 的设置?

c# - Silverlight:无法解析资源 {0}(仅在设计时)

c# - 在 C# 中调用的存储过程如何在不提供所有可选参数的情况下正确插入数据?

java - 在Java中过滤列表并将结果放入新的数组列表中