c# - 无法将整数文本文件读入整数数组
问题描述
由于某种原因,这让我简直发疯了,我的代码将一个简单的 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#/.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();
}
推荐阅读
- reactjs - 当我使用地图时,错误类型“字符串 []”不可分配给在类名中键入“字符串”
- java - 由于来自 Firebase 存储的文件大小限制规则,如何获得被拒绝的 upolad 错误
- vue.js - 错误:您可能在组件渲染函数中有无限更新循环
- postgresql - 如何在 postgreSQL 中的另一个存储过程中调用存储过程
- java - 无需安装 mvn 即可获取给定工件的依赖项列表的 API
- ios - IOS 上的 SSL 套接字连接实现
- javascript - 如何在拆分的(vuex)getters.js 文件中访问 $route?
- regex - NGINX Ingress Controller 用于分支部署的多种服务
- reactjs - 加载块 {X} 失败创建 React 应用程序
- python - (discord.py)如何让我的机器人读取发送给它的 DM 并打印它们或将它们发送到特定频道