如何比较两个无序序列(列表和数组)是否相等?

Lam*_*mps 3 c# linq

我有字符串数组说 string str[] = {"a", "b"}

List<string> lst = new List<string> {"a", "b"}

如何确保字符串数组和列表包含相同的值.注意:值可以是任何顺序,但必须具有相同的频率.

任何人都可以告诉我如何在LINQ中做到这一点?

谢谢.

Ben*_*zun 11

也许我错过了什么,但你为什么不这样做

  • 对两者进行排序(因为订单与您无关)
  • 比较结果 SequenceEquals()

保存Jason的字典方法(显然,它应该也能正常工作),对我来说似乎更自然/更容易?


bit*_*onk 5

接受的答案对我来说有点尴尬.你为什么不能这样做:

bool equals = str.OrderBy(s => s).SequenceEquals(lst.OrderBy(t => t));
Run Code Online (Sandbox Code Playgroud)