2

私は C# をかなり使い始めたばかりで、一部の配列型の変換に問題があります。

JavaScript コード:

function toMatrix(list, elementsPerSubArray) {
    var matrix = [], i, k;
    for (i = 0, k = -1; i < list.length; i++) {
        if (i % elementsPerSubArray === 0) {
            k++;
            matrix[k] = [];
        }
        matrix[k].push(list[i]);
    }
    return matrix;
}

コードを変換しようとしましたが、C# の配列に苦労しています。

これは一部の人にとっては簡単かもしれませんが、どうすればよいでしょうか?

ありがとう。

4

2 に答える 2

3

これが試みです。項目タイプにジェネリック パラメータを使用しました。

List<List<T>> toMatrix<T>(List<T> list, int elementsPerSubArray) 
{
    var matrix = new List<List<T>>();
    int k = -1;
    for (int i = 0 ; i < list.Length; i++) 
    {
        if (i % elementsPerSubArray == 0) 
        {
            k++;
            matrix.Add(new List<T>());
        }
        matrix[k].Add(list[i]);
    }
    return matrix;
}

テスト:

List<int> input = new List<int> { 1, 2, 3, 4, 5, };
var result = toMatrix(input, 2);
    foreach (var outer in result)
        Console.WriteLine(string.Join(", ", outer));

(イデオネでのデモ)

于 2013-10-23T00:41:39.087 に答える