次のような状況があります: 平均的な長さはおそらく 30 の文字列 (250.000+ としましょう) の大きなコレクションがあります。
コレクションは実行時に静的です。つまり、選択したコレクションの最初の読み取りと入力は一度だけ行われます..したがって、データ構造を構築するパフォーマンスはまったく重要ではありません。メモリも問題ではありません。つまり、必要に応じて同じデータを持つ 2 つのコレクションを作成してもかまいません (1 つは startwith 用、もう 1 つは含む場合など)。重要なのは、検索条件に一致するすべての要素を返す必要がある検索のパフォーマンスだけです。
まず、Trie または Radix-tree に出くわしました..しかし、もっと良い選択肢があるのではないでしょうか?
を含む..私にはまだ良い考えがありません(その量のデータでは非常に高速ではないリストでlinqクエリを実行する以外に)。
よろしくお願いします!
更新:重要な部分を忘れていました:Containsを使用すると、コレクションに完全に一致するものがないことを意味します..しかし、指定された検索文字列を含むコレクション内のすべての文字列を見つけたい