2

私は、他のアプリケーションで広く使用される一般的なライブラリに取り組んでいます。SDKライブラリの一種と言えます。

2D コレクションの実装を実装する必要があります。これは、汎用テンプレートの抽象クラスになります。では、2D 配列またはコレクションを作成するための優れた方法は何ですか。グリッド構造のようなものです。

これが私が1Dコレクションに対して行ったことです。

public abstract class BaseCollection<T> : Collection<T>

2D コレクションはどうすればいいですか。[、] または、他の何か。

4

1 に答える 1

1

オプションはいくらでもありますが、部分的には 2D コレクションの実際の実装に依存します。

2D 配列だけが必要な場合は、そのための特別な構文があります。これは 2D 文字列配列です。

string[,] twoDimStringArray = new string[4,5];

別のオプションは、リストのリストを持つことです:

List<List<string>> listOfListOfString = new List<List<string>>();

ギザギザの配列を持つことができます:

string[][] arrayOfArraysOfString = new string[5][];

一般的に言えば、別のコレクション型を拡張するクラスを持つことはお勧めしません。通常、別の種類のコレクションをカプセル化することをお勧めします。クラス自体がコレクションとして公開されている場合はIEnumerableICollectionIListISet、 などの適切なさまざまなインターフェイスを使用します。

2 次元のインデックス付きリスト スタイルのコレクションがあるIList<IList<T>>場合、これらのインターフェイスが提供する機能のレベルを公開したい場合は、おそらくクラスを 、または `ICollection> にすることができます (公開しない場合があります。より多くの文脈を知ること)。

于 2013-06-03T14:26:31.690 に答える