问题
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)?
回答1:
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.
回答2:
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();
来源:https://stackoverflow.com/questions/11963427/difference-of-two-lists-c-sharp