首页 > 解决方案 > 无法将整数文本文件读入整数数组

问题描述

由于某种原因,这让我简直发疯了,我的代码将一个简单的 int 文本文件读入 int 数组是行不通的。

private void HardButton_Click(object sender, EventArgs e)
    {
        int[] hard1 = { };
        int counter = 0;


        using (StreamReader inFile = new StreamReader("h1.txt"))
        {
            string str = null;

            while ((str = inFile.ReadLine()) != null)
            {
                hard1[counter] = Convert.ToInt32(str);
                counter++;
            }
        }

hard1 是一个整数数组,我需要通过读取文本文件来保存放入其中的每个整数。我的错误是我的数组超出了界限,即使我每次都在循环中进行迭代。我很茫然。

编辑:这是txt文件输入

0502090
6070203
0502010
5020101
0503010
4020905
0608070

7582391
6478283
8592914
5628191
6573812
4728915
3648271

标签: c#winforms

解决方案


C#/.Net 有真正的数组,而不是你在许多其他语言中看到的伪数组集合(它也有这些,只是不会尝试将它们作为数组传递)。真实数组的一个属性是固定大小

因此,当您像这样声明数组时:

int[] hard1 = { };

你所拥有的是一个固定大小为 0 的数组,因此稍后分配给该数组,如下所示:

hard1[counter] = Convert.ToInt32(str);

无处分配。

你有很多选择来解决这个问题。这是其中之一:

private void HardButton_Click(object sender, EventArgs e)
{
    var result = File.ReadLines("h1.txt").
         Where(line => !string.IsNullOrWhitespace(line)).
         Select(line => int.Parse(line)).
         ToArray();
}

推荐阅读