如何在锯齿状数组中分配数组?

时间:2020-10-04 10:41:48

标签: c# arrays visual-studio console jagged-arrays

我有3组数组,分别是a [i],b [j],c [k],我必须将它们分配给一个锯齿状的数组,以显示给输出。

array[0] = new int[3] { a[i] };
array[1] = new int[2] { b[j] };
array[2] = new int[2] { c[k] ];

for (i = 0; i < array.Length; i++)
{
     Console.Write("First Array: ");
     for (int l = 0; l < array[i].Length; l++)
     {
           Console.Write("\t" + array[i][l]);
     }

     Console.Write("Second Array: ");
     for (int m = 0; m < array[i].Length; m++)
     {
           Console.Write("\t" + array[i][m]);
     }

     Console.Write("Third Array: ");
     for (int n = 0; n < array[i].Length; n++)
     {
           Console.Write("\t" + array[i][n]);
     }

     Console.WriteLine();
}

但是我不能让它们正常工作,它们总是给我一个错误。

4 个答案:

答案 0 :(得分:0)

在Javascript中,类似的事情可以通过-

完成

let a =  [ '1','2','3']
let b =  ['4','5']
let c =  ['6','7']

let array = []
array.push(a)
array.push(b)
array.push(c)
console.log(array)

输出

[ [ '1', '2', '3' ], [ '4', '5' ], [ '6', '7' ] ]

答案 1 :(得分:0)

public void InsertValues(List<int> values)
{
    // define the insert query
    string qryInsert = "INSERT INTO dbo.tblTest (value1) VALUES (@singleValue);";
    
    using (SqlConnection conn = new SqlConnection(connectionString))
    using (SqlCommand cmdInsert = new SqlCommand(qryInsert, conn))
    {
        // define parameter
        cmdInsert.Parameter.Add("@singleValue", SqlDbType.Int);
        
        conn.Open();
        
        // loop over values
        foreach (int aValue in values)
        {
            // set the parameter value, execute query
            cmdInsert.Parameters["@singleValue"].Value = aValue;
            cmdInsert.ExecuteNonQuery();
        }
        
        conn.Close;
    }
}

答案 2 :(得分:0)

应该看起来更像是

// place references to the source arrays into the jagged array
array[0] = a[i];
array[1] = b[j];
array[2] = c[k];

// iterate over the jagged array and output each array that is within
for (i = 0; i < array.Length; i++)
{
    Console.Write("Array " + i + ": ");
    for (int j = 0; j < array[i].Length; j++)
    {
        Console.Write("\t" + array[i][j]);
    }
    Console.WriteLine();
}

请注意,我们只有一个内部for循环,它使用外部循环的i变量遍历每个内部数组。

答案 3 :(得分:0)

您不必为每个数组都使用“ for语句”。要遍历锯齿状的数组,可以 请参阅以下演示。

int[][] c;
c = new int[2][]; // creates 2 rows
c[0] = new int[3] { 1, 2, 3 }; // 3 columns for row 0
c[1] = new int[5] { 4, 5, 6, 7, 8 }; // create 5 columns for row 1

// Traverse rows
for (int a = 0; a < c.Length; a++)
{
    // Traverse columns
    for (int b = 0; b < c[a].Length; b++)
    {
        Console.WriteLine(c[a][b]);
    }
}