2

Any インデックスは一意である必要があると常に考えてきましたが、次の投稿に示されているように、少なくとも SQL Server には当てはまらないと思います。

クラスタ化インデックスは一意である必要がありますか?

最近、コレクション内に大量のデータを保存する必要があり、インデックスでオブジェクトを取得するための最速のコレクションであるため、辞書を使用することを考えました。しかし、私のコレクションでは重複したキーを許可する必要があります。しかし実際には、返されたオブジェクトのいずれかが要件を満たすため、キーの重複は問題になりません (オブジェクトは厳密には一意ではありませんが、キーは一意になります)。

さらに調査した結果、次の投稿にたどり着きました。

C# ハッシュセットに一意でないオブジェクトが含まれている

これは、「重複したキー」で HashSet を取得する方法を示しています。彼の問題は私の解決策ですが、回避策を講じなくても非常に高速に検索できる、重複したキーを持つリストを作成できる方法が他にあるのではないかと思います。

4

1 に答える 1

0

「重複したインデックスはいずれも要件を満たしているため、問題にはなりません」

これにより、同じインデックス値に対して保存されたアイテムを取得することが、インデックスごとにアイテムを取得するときに十分であるということを意味する場合は、単純なものDictionaryで十分です。

例えば

Dictionary<int, string> myData = new Dictionary<int, string>();

myData[1] = "foo";
myData[2] = "bar";
myData[2] = "baz"; // overwrites "bar"

var myDatum = myData[2]; // retrievs "baz" not "bar", but this is satisfactory.
于 2013-01-22T02:10:35.017 に答える