如何处理文件的数字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();
}
有几个方法可以简化你的代码- File。readline,字符串。拆分和LINQ选择。结果代码可能类似于:
var listOfArraysOfDouble = File.ReadLines(fileName)
.Select(row =>
row.Split((string[]) null, StringSplitOptions.RemoveEmptyEntries)
.Select(columnValue => double.Parse(columnValue))
.ToArray()
);