我有两个字符串列表,它们都是 ~300,000 行。清单 1 比清单 2 多几行。我要做的是找到清单 1 中但不在清单 2 中的字符串。
考虑到我必须比较多少个字符串,Except()
足够好还是有更好(更快)的东西?
我有两个字符串列表,它们都是 ~300,000 行。清单 1 比清单 2 多几行。我要做的是找到清单 1 中但不在清单 2 中的字符串。
考虑到我必须比较多少个字符串,Except()
足够好还是有更好(更快)的东西?
在内部,可枚举Except
扩展方法用于Set<T>
执行计算。它将与任何其他方法一样快。
一起去list1.Except(list2)
。
它会给你最好的性能和最简单的代码。
我的建议:
HashSet<String> hash1 = new HashSet<String>(new string[] { "a", "b", "c", "d" });
HashSet<String> hash2 = new HashSet<String>(new string[] { "a", "b" });
List<String> result = hash1.Except(hash2).ToList();