سؤال

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