0

配列で行と列を削除する方法を使用したいと思います。ArrayListしたがって、メソッドを使用するように配列を変換したかったのRemoveAt(int index)ですが、.NET 4.5 を使用する Windows 8 アプリにはArrayList. int[,]行と列を削除するメソッドを持つ単純な配列を別の型にキャストする方法を教えてください。

4

2 に答える 2

2

リストのリストを使用できます:

List<List<int>> array = new List<List<int>>();

そして、次のように初期化します

for (int i = 0; i < orig_array.Length, i++)
{
    array.Add(new List<int>(orig_array[i]));
}

このアプローチを使用array.RemoveAt(row)すると、行全体array[row].RemoveAt(col)が削除されますが、要素が削除されます。

編集: phoog が示したように、上記の初期化は、次のように int[,] として宣言された配列に対して変更する必要があります。

for (int row = 0; row < orig_array.GetLength(0), row++)
{
    array.Add(new List<int>());
    for (int col = 0; col < orig_array.GetLength(1); col++)
    {
        array[row].Add(orig_array[row, col]);
    }
}

この場合、ギザギザ配列 (矩形配列ではなく) を使用する利点は、値を明示的にループする必要なく、行全体にアクセスできることです。

于 2012-09-26T23:49:49.567 に答える
0

ArrayList とすべての非ジェネリック コレクションが WinRT から削除されました。このリンクは、 arraylistを置き換えるのに役立ちます。

于 2012-09-27T02:56:06.433 に答える