gpt4 book ai didi

c# - 为什么我无法在 C# 中为该数组赋值?

转载 作者:行者123 更新时间:2023-12-03 09:27:16 24 4
gpt4 key购买 nike

我正在尝试找出如何知道用户在我的应用程序上在线的方式,因此我将这些数据保存到文本文件中,但是当尝试逐行读取文本文件时,我想通过将其放入数组中以更好地比较数据。所以这就是我的做法:

String folder = Application.StartupPath;
String file = "users.txt";

String str;
String[] strArray;
String[][] data;
int rows = 0;
StreamReader lines = new StreamReader(folder + file);
while ((str = lines.ReadLine()) != null)
{
strArray = str.Split('~');
for (int i = rows; i <= rows; i++)
{
for (int j = 0; j < strArray.Length; j++)
{
data[rows][j] = strArray[j]; // here is the error
}
}
rows++;
}

如您所见,我之前声明了我的数据数组,但它说它无法使用它,因为未分配。

提前致谢。

最佳答案

要了解错误的解释,您需要查看锯齿状数组。关键是你需要初始化外部数组和内部数组:

int[][] jagged = new int[5][];  // Initialized outer array
jagged[0] = new int[3]; // Initialized an inner array

但是,由于您事先不知道需要多少行,因此应该使用列表:

List<List<String>> data = new List<List<String>>();
while ((str = lines.ReadLine()) != null)
{
data.Add(str.Split('~').ToList());
}

或者,如果您只想要一个列表:

List<String> data = new List<String>();
while ((str = lines.ReadLine()) != null)
{
data.AddRange(str.Split('~'));
}

关于c# - 为什么我无法在 C# 中为该数组赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17979939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com