如何向2D数组添加行

时间:2014-02-28 12:37:24

标签: c# arrays

我有一个包含89395行和100列的数组。

float[][] a = Enumerable.Range(0, 89395).Select(i => new float[100]).ToArray();

我想从这个数组中获取最后一行的索引,并将一行(lastindex + 1)添加到数组中,并将100个浮点数插入到新行中,这些行是随机的。还将新索引(新行的数量)保存到userid变量中。 我在C#中编写了以下代码。

public float random(int newitemid)
{
    a.Length = a.Length+1;
    int userid = a.Length;
    Random randomvalues = new Random();
    float randomnum;
    for (int counter = 0; counter < 100; counter++)
    {
        randomnum = randomvalues.Next(0, 1);
        a[counter] = randomnum;
    }
    return a;
}

1 个答案:

答案 0 :(得分:1)

你可以这样做:

public float random(int newitemid)
{
    // Create a new array with a bigger length and give it the old arrays values
    float[][] b = new float[a.Length + 1][];
    for (int i = 0; i < a.Length; i++)
        b[i] = a[i];
    a = b;

    // Add random values to the last entry
    int userid = a.Length - 1;
    Random randomvalues = new Random();
    float randomnum;
    a[userid] = new float[100];
    for (int counter = 0; counter < 100; counter++)
    {
        randomnum = (float)randomvalues.NextDouble(); // This creates a random value between 0 and 1
        a[userid][counter] = randomnum;
    }
    return a;
}

但是,如果你使用这种方法不止一次或两次,你真的应该考虑使用一个列表,这样效率会更高。

所以请改用List<float[]> a

P.S。如果你不使用参数newitemid,那么最好从函数中删除它。

编辑:我更新了randomnum以实际生成随机数而不是0