前提・実現したいこと
- Guidを格納しているListが2つあり、両方(targetList, searchList)に存在する要素を抽出すること
- 結果(resultList)はtargetListの順序に格納されること
上記2点を満たす処理を実装したいです。
・targetList - 検索対象のリスト
[0]AAAA-AAAA
[1]BBBB-BBBB
[2]CCCC-CCCC
[3]DDDD-DDDD
・searchList - 検索条件のリスト
[0]CCCC-CCCC
[1]AAAA-AAAA
・resultList- 検索結果のリスト
[0]AAAA-AAAA
[1]CCCC-CCCC
※以下の順序はNG
[0]CCCC-CCCC
[1]AAAA-AAAA
発生している問題・エラーメッセージ
上記の条件を満たすため、findAll関数を使用し実装しましたが、
リストに格納された要素数が多いためか、非常に時間がかかっています。
targetList - 約350,000件
searchList - 約50,000件
処理時間 - 約60秒
処理時間を可能な限り短縮したいのですが、
なにか良い方法はありませんでしょうか?
前提条件を満たすことが出来ればListでなくとも構いません。
よろしくお願い致します。
該当のソースコード
C#
1List<Guid> resultList = targetList.FindAll(searchList.Contains);
補足情報(FW/ツールのバージョンなど)
・環境:C#4.0
・CPU:Xeon E3-1241
・Memory:16GB
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。