1

たとえば、文字列でインデックスが作成される 2 次元のテーブルを作成する必要があるという問題があります。

table["London","Cambridge"] = 120;

またはギザギザ:

table["London"]["Cambridge"] = 120;

これを処理できるコレクションまたは配列を宣言する方法は? 解決策を見つけましたが、それが最善かどうかはわかりません。

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

しかし、新しい値を作成したいときは、新しい辞書を初期化する必要があるため、なぜその解決策が正しくないと思いますか:

table.Add("London", new Dictionary<string, int> {{"Cambridge",120}});

では、文字列でインデックス付けされた 2 次元配列を作成するにはどうすればよいでしょうか (これを処理できる新しいクラスを作成することもできます)。

4

1 に答える 1

2

MultiKey辞書を一度書きましたが、見てみましょ

このように 2 つのキーで要素を取得または設定できますdictionary["key1", "key2"]

編集:
しかし、.NET 4 の Tuple 型を使用すると、ネストされた辞書を使用する代わりに、Tuple をキーとして使用できると思います。

public class Dictionary<TKey1, TKey2, TValue> : Dictionary<Tuple<TKey1, TKey2>, TValue>
...
于 2010-11-12T16:11:29.987 に答える