Вопрос

I have two lists of strings both of which are ~300,000 lines. List 1 has a few lines more than List 2. What I'm trying to do is find the strings that in List 1 but not in List 2.

Considering how many strings I have to compare, is Except() good enough or is there something better (faster)?

Это было полезно?

Решение

Internally the enumerable Except extension method uses Set<T> to perform the computation. It's going to be as least as fast as any other method.

Go with list1.Except(list2).

It'll give you the best performance and the simplest code.

Другие советы

My suggestion:

    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();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top