从文本文件中获取多维数组

时间:2014-02-16 11:00:08

标签: c# arrays multidimensional-array

我有静态类theat声明数组:

static class GlobalDataClass
{
    public static double[,] dDataArray = new double[10, 2];   
}

现在我有一个函数,通过获取数组的行数和索引来逐行流式传输文本文件:

using (StreamReader sr = new StreamReader(filename))
{
    double[] dx = new double[lines]; //lines store number of rows
    double[] dy = new double[lines]; //lines store number of rows

    for (long li = 0; li < lines; li++)
    {
        dx[li] = GlobalDataClass.dDataArray[li, 0];
        dy[li] = GlobalDataClass.dDataArray[li, 1];
    }
}

我的文字文件如下:

1,2  
2,3  
3,4  
5,6  

现在如何使输出矩阵如下:

dx[1] [0,0] = 1  
dy[1] [0,1] = 2   

等等。

2 个答案:

答案 0 :(得分:1)

对于create multidimensional array,您可以使用list列表:

List<List<string>> ls = new List<List<string>>();
           var  filename="aa.txt";
           StreamReader sr = new StreamReader(filename);
           while (!sr.EndOfStream)
           {
               var line = sr.ReadLine();
               var element = line.Split(',');
               List<string> temp = new List<string>();
               foreach (var item in element)
               {
                   temp.Add(item);
               }
               ls.Add(temp);
           }

在此代码中,每一行可能包含许多元素(&gt; 2)。

答案 1 :(得分:0)

你可以读取文件并用逗号分隔每一行,如下所示:

StreamReader sr = new StreamReader("MyNumbers.txt");
String line;
String[] lineSeperate;
line = sr.ReadLine();
lineSeperate = line.Split(',');

现在,dx[index] = lineSeperate[0]dy[index]=lineSeperate[1]

修改 您需要将String转换为double:

dx[0] = double.Parse(lineSeperate[0]);
dy[0] = double.Parse(lineSeperate[1]);