比较元组列表的最佳方法

Jim*_*mmy 3 c#

我有两个从不同来源填充的列表,检查两个列表是否包含相同项目的最佳方法是什么?订单并不重要

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

Tim*_*ter 9

你可以使用!Except.Any:

bool same = list1.Count == list2.Count && !list1.Except(list2).Any();
Run Code Online (Sandbox Code Playgroud)

说明:

  1. 检查两个列表是否相同Count,否则您知道它们不包含相同的列表
  2. 如果你"删除" ,请检查Except并确认Any是否有重新记录的元组.如果有(至少一个)您知道它们不包含相同的内容list2list1Any

因为元组覆盖GetHashCode(也像匿名类型)string也可以工作.