我目前有这个:
using (StreamReader sr = new StreamReader("answers.txt"))
{
for (iCountLine = 0; iCountLine < 10; iCountLine++)
{
for (iCountAnswer = 0; iCountAnswer < 4; iCountAnswer++)
{
sQuestionAnswers[iCountLine, iCountAnswer] =
}
}
}
我的文本文件格式如下(10行文字,每行有4个项目以逗号分隔):
example, example, example, example 123, 123, 123, 123
我不确定在for循环中的“=”后我需要什么才能让它读取并将文本文件的内容拆分成2D数组。
答案 0 :(得分:2)
我不确定在for循环中的“=”之后我需要什么
上面还缺少一条线:
var tokens = sr.ReadLine().Split(',');
现在=
的行看起来像这样:
sQuestionAnswers[iCountLine, iCountAnswer] = tokens[iCountAnswer];
答案 1 :(得分:2)
这不会使用StreamReader
,但它简短易懂:
string[] lines = File.ReadAllLines(@"Data.txt");
string[][] jaggedArray = lines.Select(line => line.Split(',').ToArray()).ToArray();
根据换行符,ReadAllLines
提取行。通过在每一行上调用Split
来提取列值。它返回锯齿状数组,你可以使用类似于多维数组,锯齿状数组通常比多维数组更快。
答案 2 :(得分:0)
string line;
using (var sr = new StreamReader("answers.txt"))
{
while ((line = sr.ReadLine()) != null)
{
for (int iCountLine = 0; iCountLine < 10; iCountLine++)
{
var answers = line.Split(',');
for (int iCountAnswer = 0; iCountAnswer < 4; iCountAnswer++)
{
sQuestionAnswers[iCountLine, iCountAnswer] = answers[iCountAnswer];
}
}
}
}
答案 3 :(得分:0)
我建议你改变方法。
使用StreamReader类的ReadLine()方法遍历文件。 然后使用Split(new [] {','})拆分读取行,这将为您提供每条记录。 最后,sQuestionAnswers [iCountLine,iCountAnswer]将是:刚刚拆分数组的[iCountAnswer]的记录。