IList <IList <string >>をどのように初期化できますか?

試してみる:

IList> matrix = new List()>();

しかし、私はできません。どうしたらいいですか?私は文字列の行列が必要です...

5

4 答え

あなたが必要とするだろう:

IList> matrix = new List>();

but then you can happen to always add a List for each element.

これがうまくいかない理由:

// Invalid
IList> matrix = new List>();

次のように書くのが妥当であるということです。

// string[] implements IList
matrix.Add(new string[10]);

... but that would violate the fact that the list is really a List> - it's got to contain List values, not just any IList... whereas my declaration at the top just creates a List>, so you could add a string array to it without breaking type safety.

もちろん、宣言で具体的な型を使用するように変更することができます

IList> matrix = new List>();

あるいは:

List> matrix = new List>();
13
追加された

これを試して

    IList> matrix = new List>();
3
追加された
私の答えはスケートになった:D
追加された 著者 Orkun Ozen,

これはうまくいく - 試した方法でジェネリック型のパラメータを初期化することはできません:

IList> matrix = new List>();

Though, the inner IList will be null. To initialize it you can do the following:

matrix.Add(new List());
1
追加された
@Downvoter - コメントするケア?
追加された 著者 Oded,

行列が一定のサイズの配列であれば、よりフィットする

string[][] matrix = new string[size];
matrix[0] = new string[5];
matrix[1] = new string[8];
matrix[2] = new string[7];

長方形の場合

string[,] matrix = new string[sizex,sizey];
1
追加された
私は初期のサイズがわからない...ディナミックでなければならない:)
追加された 著者 markzzz,