私は自分の問題に関するいくつかの記事を見つけようとしましたが、私のアプリケーションに関連するものや意味のあるものは何も見つかりませんでした。これが私の問題です:
(> 20,000)アイテムのリストが2つあります。
各リストの各アイテムを、反対のリストのすべてのアイテムと照合する必要があります。
このようなものの実装:
foreach(var item1 in List1)
{
foreach(var item2 in List2)
{
// Check item 1 against item 2.
// Check item 2 against item 1.
}
}
チェックのために行われた作業のため、非常に遅く、使用できません。
このようなチェックが必要なアイテムのこれらの大きなリストを処理するためのより効率的な方法はありますか?
私が提供できるより多くの情報があれば私に知らせてください。ヘルプ/提案をありがとう。
C#.NET3.5を使用しています
編集:チェックを簡単に説明してみましょう。
item1とitem2は、パスシステムの一部です。item1とitem2は、N個の他のアイテムによって接続されています。item1がitem2に接続されているか(有効なパス)、item2がitem1に接続されているかどうかを確認しています。item1-> item2の場合、item2->item1よりも想定できません。したがって、両方のチェックが必要です。
データベースには、item1->item2およびif/ howitem2->item1の情報が含まれています。チェックの中には、チェックを行うためのサービスへの名前付きパイプ呼び出しがあります。サービスはすべてのパスチェックを実行し、item1->item2などの場合に戻ります。