c# - 无法在 C# 中创建数组

标签 c# arrays random

我试图在 C# 中创建一个动态数组,但我收到了一条烦人的错误消息。这是我的代码:

    private void Form1_Load(object sender, EventArgs e)
    {
        int[] dataArray;
        Random random = new Random();
        for (int i = 0; i < random.Next(1, 10); i++)
        {
            dataArray[i] = random.Next(1, 1000);
        }
    }

错误:

Use of unassigned local variable 'dataArray'

这让我很困惑。我来自 VB,所以请我温柔一点,哈哈。

干杯。

最佳答案

您还没有创建数组 - 您已经声明了变量,但没有给它赋值。

请注意,数组始终具有固定大小。如果你想要一个可以不断添加的数据结构,你应该使用 List<T> .但是,我建议一次 计算大小,而不是在循环的每次迭代中计算。例如:

private void Form1_Load(object sender, EventArgs e)
{
    List<T> dataArray = new List<T>();
    Random random = new Random();
    int size = random.Next(1, 10);
    for (int i = 0; i < size; i++)
    {
        dataArray.Add(random.Next(1, 1000));
    }
}

当然,如果您事先计算出大小,您可以毕竟使用数组:

private void Form1_Load(object sender, EventArgs e)
{
    Random random = new Random();
    int size = random.Next(1, 10);
    int[] dataArray = new int[size];
    for (int i = 0; i < size; i++)
    {
        dataArray[i] = random.Next(1, 1000);
    }
}

... 但请注意数组是 considered somewhat harmful .

关于c# - 无法在 C# 中创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2495352/

相关文章:

c++ - 你如何生成一个随机的 12 位数字?

javascript - 使用此 HTML/Javascript/CSS 生成随机字符串?

c# - 嵌套泛型函数的类型推断

c# - 创建复杂函数的响应式版本

javascript - 如何按值从数组中删除项目?

arrays - 生成具有 Int 范围的特定 float 组

javascript - Math.floor(Math.random() * 255) 不会产生不均匀的概率吗?

c# - WinForms - 如何在加载表单时使用 PaintEventArgs 运行函数?

c# - 为技能使用添加冷却时间

PHP:foreach 按 id 和月份循环并添加值