将文本文件读入二维数组

时间:2015-09-02 23:50:18

标签: c# arrays streamreader

我不知道如何计算平均值。我正在获得我期望的输出,除了我希望在我的所有其他信息旁边的列中输入的平均值。非常感谢能为我看的人。

using System;
using System.IO;
public static class Program
{

static void Main()
{
    string file="marks2D.txt";
     string outfile="average.csv";

    StreamReader sr= new StreamReader(file);
    StreamWriter outstream= new StreamWriter(outfile);

    double[,] temp=new double[5,6];
    int num=0;
    double ave=0;


for(int i=0; i<temp.GetLength(0); i++)
    {
        double sum=0;
        string line=sr.ReadLine();

        for(int j=0; j<temp.GetLength(1); j++)
        {


          double m=double.Parse(line);
          temp[i,j]=m;
          sum+=m;
          ave = sum/5;

            //temp[i,j]=line;
            outstream.WriteLine(ave);
            outstream.WriteLine("{0,1}", temp[i,j]);
        }


    }
    outstream.WriteLine();
    Console.WriteLine();


    sr.Close();
    outstream.Close();


}
}

2 个答案:

答案 0 :(得分:1)

您已将temp声明为二维数组。

string[,] temp=new string[5,6];

然后尝试使用一个索引

设置2D数组的值
temp[num]=line;

这是不可能的。对于2D数组,必须使用2个索引

temp[i, j]=line;

您收到“当前上下文中不存在名称字段”错误,因为您已注释掉字段变量,因此它不存在。

答案 1 :(得分:0)

您已经声明了一个二维字符串数组,但是您将其作为循环内的单维数组引用。

更改行

   temp[num]=line;

到此:

   temp[i,j]=line;

另外,你忘了评论第二个outstream.WriteLine,我相信变量字段被注释掉了。

//outstream.WriteLine(field[num]);