我有两个从不同来源填充的列表,检查两个列表是否包含相同项目的最佳方法是什么?订单并不重要
List<Tuple<string, string, string>> list1;
List<Tuple<string, string, string>> list2;
Run Code Online (Sandbox Code Playgroud)
你可以使用!Except.Any
:
bool same = list1.Count == list2.Count && !list1.Except(list2).Any();
Run Code Online (Sandbox Code Playgroud)
说明:
Count
,否则您知道它们不包含相同的列表Except
并确认Any
是否有重新记录的元组.如果有(至少一个)您知道它们不包含相同的内容list2
list1
Any
因为元组覆盖GetHashCode
(也像匿名类型)string
也可以工作.