0

以下に示すようにギザギザの配列があり、配列は ac# コード内にあります。

@{
    int[][] array = new int[2][4];
    // codes here that manipulates the values of the array.
}

ここで、配列内の値を取得/トラバースしたいと考えています。しかし、以下のコードは機能しません。プログラムを実行すると、「インデックスが配列の範囲外でした」という実行時エラーが発生しました。

for(var i = 0 ; i < @array.Count(); i++){
    alert( '@array['i'].Length');
}

どうやってするか?

ありがとう

4

3 に答える 3

1

のようなものを試してください

foreach(var subArray in array)
{
   @:alert(subArray.Length);
}

しかし、静的に宣言されているため、長さは常に同じではありませんか?

于 2013-07-11T08:31:21.953 に答える
1

多次元配列のトラバース:

    int[,] a = new int[,]
    {
        {2, 4}
    };

    for (int i = 0; i <= a.GetUpperBound(0); i++)
    {
        for (int k = 0; k <= a.GetUpperBound(1); k++)
        {
            // a[i, k]; 
        }
    }
于 2013-07-11T08:32:48.330 に答える
0

私が見ることができる唯一の問題は、かみそり自体が少し...奇妙だということです。alertcshtml を意図しているのか出力を意図しているのかは明らかではありませんが、行はどちらにも有効ではないようです。

alertが出力されている場合は、試してみてください:

// note this might need to be @for, depending on the line immediately before
for(var i = 0 ; i < array.Length; i++) {
    @:alert('@(array[i].Length)');
}

そして、alertサーバー側として意図されている場合:

// note this might need to be @for, depending on the line immediately before
for(var i = 0 ; i < array.Length; i++) {
    alert(array[i].Length);
}
于 2013-07-11T08:30:44.297 に答える