无论订单如何,如何识别两个List <string>是否相等?

Lui*_*cia 2 c# linq

我有以下2个对象

List<string> list1
List<string> list2
Run Code Online (Sandbox Code Playgroud)

在列表1上我有3个项目在列表2上我有不同顺序的相同3个项目.

我需要一个简单的方法来返回两个列表相等,当它们包含相同的元素而不管顺序

Mar*_*zek 14

您可以使用SequenceEqual其他订单:

return list1.OrderBy(x => x).SequenceEqual(list2.OrderBy(x => x));
Run Code Online (Sandbox Code Playgroud)


Sel*_*enç 5

您可以使用All和这样的Contains方法,如果两个列表包含相同的元素,即使顺序不同,也会返回true:

bool control = list1.All(x => list2.Contains(x) && 
                          list1.Count(a => a == x) == list2.Count(b => b == x));
Run Code Online (Sandbox Code Playgroud)

  • 尝试比较`{"1","2","2"}和`{"1","1","2"}`now;) (3认同)