有两个字符串列表
List<string> A;
List<string> B;
您建议检查 A.Count == B.Count 和 A 的每个元素在 B 中的最短代码是什么,反之亦然:每个 B 都在 A 中(A 项和 B 项可能有不同的顺序)。
最佳答案
如果您不需要担心重复:
bool equal = new HashSet<string>(A).SetEquals(B);
如果您担心重复,那就有点尴尬了。这会起作用,但速度相对较慢:
bool equal = A.OrderBy(x => x).SequenceEquals(B.OrderBy(x => x));
当然,您可以通过先检查计数来提高这两个选项的效率,这是一个简单的表达式。例如:
bool equal = (A.Count == B.Count) && new HashSet<string>(A).SetEquals(B);
...但是您要求的是最短的代码:)
关于C#:如何检查列表的大小和元素是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4266537/