1

我目前有这个:

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 数组。

4

4 回答 4

2

我不确定在 for 循环中的“=”之后我需要什么

上面还少了一行:

var tokens = sr.ReadLine().Split(',');

现在的行=看起来像这样:

sQuestionAnswers[iCountLine, iCountAnswer] = tokens[iCountAnswer];
于 2013-02-22T13:37:19.427 回答
2

这不使用StreamReader,但它简短易懂:

        string[] lines = File.ReadAllLines(@"Data.txt");
        string[][] jaggedArray = lines.Select(line => line.Split(',').ToArray()).ToArray();

ReadAllLines根据换行符提取行。Split通过调用每一行来提取列值。它返回锯齿状数组,您可以像多维数组一样使用它,锯齿状数组通常比多维数组更快。

于 2013-02-22T13:42:04.597 回答
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];
            }
        }
    }
}
于 2013-02-22T13:37:17.617 回答
0

我建议你改变方法。

使用 StreamReader 类的 ReadLine() 方法检查文件。然后使用 Split(new[]{','}) 拆分读取行,这将为您提供每条记录。最后 sQuestionAnswers[iCountLine, iCountAnswer] 将是:刚刚拆分数组的 [iCountAnswer] 的记录。

于 2013-02-22T13:38:27.410 回答