如何处理文件的数字c#

本文关键字:文件 数字 处理 何处理 | 更新日期: 2023-09-27 18:07:30

我的文件包含这样的数字123.4 23.7 89.2……45.8

8列1024行,我想逐行读取这个文件,并将每一行放入double数组中,从这一行获取最小值,并将这个最小值放入大小为1024的数组中。

我在c#中尝试了这个代码…

 static void Main(string[] args)
    {
        string line;
        double[] row = new double[8];
        double[] minimum = new double[1024];
        // Read the file and display it line by line.
        System.IO.StreamReader file =
           new System.IO.StreamReader("c:''test.txt");
        for (int k = 0; k < 1024; k++)
        {
            while ((line = file.ReadLine()) != null )
            {
                string[] numbers = new string[8];
                int numCount = 0;
                for (int i = 0; i < line.Length; i++)
                {
                    if (line[i] != ' ')
                    {
                        numbers[numCount] = "";
                        while (line[i] != ' ')
                        {
                            numbers[numCount] += line[i];
                            i++;
                        }
                        numCount++;
                    }
                }
                for (int i = 0; i < 8; i++)
                {
                    row[i] = Convert.ToDouble(numbers[i]);
                }
                double min = row[0];
                for (int j = 0; j < 8; j++)
                {
                    if (row[j] <= min)
                        min = row[j];
                }
                minimum[k] = min;
            }
        }
        Console.WriteLine("The array contain:");
        for (int i = 0; i < 1024; i++)
            Console.WriteLine(minimum[i]);
           file.Close();

        // Suspend the screen.
        Console.ReadLine();
    }

如何处理文件的数字c#

有几个方法可以简化你的代码- File。readline,字符串。拆分和LINQ选择。结果代码可能类似于:

var listOfArraysOfDouble = File.ReadLines(fileName)
    .Select(row => 
         row.Split((string[]) null, StringSplitOptions.RemoveEmptyEntries)
           .Select(columnValue => double.Parse(columnValue))
           .ToArray()
     );