文字列のリストが 2 つあり、どちらも ~300,000 行です。リスト 1 にはリスト 2 よりも数行多くあります。私がしようとしているのは、リスト 1 にはあるがリスト 2 にはない文字列を見つけることです。
比較しなければならない文字列の数を考えると、それでExcept()
十分ですか、それともより良い(より速い)ものがありますか?
文字列のリストが 2 つあり、どちらも ~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();