1

プログラムの状態マネージャーを作成しています。各状態には ID と State クラスがあります。Add() 関数を使用して、必要な数の統計を追加できます。Change(ID) 関数を使用すると、リスト内の ID が一致する状態に状態が変更されます。その後、Manager をさらに呼び出すと、設定された状態が参照されます。

そのような2Dリストを作成したいと思います:

//short = ID No, IState = Sate Interface all states are based on
List<short, IState> StateList = new List<short, IState>();

C# の場合、2D を取得するにはリストのリストを作成する必要があると思いますが、Intellisense がそれをList < T >としてマークし、T がパラメーターであるため、確信が持てません。これを行うより良い方法はありますか?私はこのリスト全体のアイデアに非常に慣れていないため、これが非常に基本的なものである場合はお詫びします。

4

3 に答える 3

2

Listに置き換えるだけDictionaryです。ディクショナリが提供するリスト項目として、キーと値のペアが必要です。

Dictionary<short, IState> StateList = new Dictionary<short, IState>();

次に、ディクショナリにインデックスを付けて、必要な状態を見つけることができます。

// Retrieve State 5
var state5 = StateList[5];
于 2013-05-20T18:44:40.560 に答える
0

必要に応じて作成できますList<Tuple<short, IState>>

ただし、リスト内の項目の順序が重要でない場合は、Dictionary<short, IState>.

順序が重要であるが、たまたま ID である場合 (たとえば、低い ID が高い ID の前に来る) SortedDictionary<short, IState>、.

于 2013-05-20T18:44:29.987 に答える