次のインターフェイスを持つオブジェクトのコレクションがあります。
public IEntity
{
public string Key1 { get; set; }
public string Key2 { get; set; }
... some other properties
}
linq を介してこれらのオブジェクトのメモリ内コレクションをクエリするための最良の戦略を探しています。ほとんどのクエリ (すべてではない) は、エンティティにアクセスするために Key1 または Key2 を探す可能性が高いため、それらをクエリする最もパフォーマンスの高い方法が何であるかはわかりません。私の考えは次のとおりです。
IList< IEntity>
それらをリストに貼り付け、linqを使用してそれらをフィルタリングするだけです
IDictionary< Tuple< 文字列, 文字列>, IEntity>
key1 と key2 を使用してマルチキー ディクショナリを作成しますが、1 つの部分しか知らない場合に IEntity にアクセスする方法がわかりません。
他の何か
これを達成するための他のより良い方法はありますか?