1

我有两个字符串列表,它们都是 ~300,000 行。清单 1 比清单 2 多几行。我要做的是找到清单 1 中但不在清单 2 中的字符串。

考虑到我必须比较多少个字符串,Except()足够好还是有更好(更快)的东西?

4

2 回答 2

5

在内部,可枚举Except扩展方法用于Set<T>执行计算。它将与任何其他方法一样快。

一起去list1.Except(list2)

它会给你最好的性能和最简单的代码。

于 2012-08-15T03:36:05.543 回答
1

我的建议:

    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();
于 2012-08-15T03:26:51.020 回答