我想从C#中的文本文件中读取一些双数据

时间:2010-08-10 09:44:08

标签: c# file-io

我在文本文件中的双重数据如下:

1.4  2.3  3.4
2.2  2.5  2.5

我想简单地从文件中读取这些数据 并将其存储在一个数组中。

请帮帮我。 我是C#的初学者

4 个答案:

答案 0 :(得分:3)

您可以使用LINQ:

double[] numbers = 
    File.ReadAllLines(path)
        .Select(s => double.Parse(s)
        .ToArray()

如果每一行都有多个数字,则需要拆分行:

double[] numbers = 
    File.ReadAllLines(path)
        .SelectMany(s => s.Split(' '))
        .Select(s => double.Parse(s)
        .ToArray()

您也可以使用普通循环:

List<double> numbers = new List<double>();
foreach(string line in File.ReadAllLines(path)) {
    numbers.Add(Double.Parse(line));
}

或者,拆分它们,

List<double> numbers = new List<double>();
foreach(string line in File.ReadAllLines(path)) {
    foreach(string word in line.Split(' ') {
        numbers.Add(Double.Parse(word));
    }
}

答案 1 :(得分:1)

使用以下指针咨询MSDN ......

将文件内容作为字符串读取的文件类
String.Split根据您的分隔
分割数字 和Double.Parse从字符串转换为double。

答案 2 :(得分:0)

试试这个,它应该比其他一些答案更具防弹性。它不会检查无法正确解析的无效数据条目。

var doubles = File.ReadAllText(path)
              .Split(new[] {" ", "\r\n", "\n"}, StringSplitOptions.RemoveEmptyEntries)
              .Select(s => double.Parse(s, CultureInfo.GetCultureInfo("en-US"))).ToArray();

如果双打由空格或换行符分割,则此方法有效。如果有多个空格/换行符,它也可以工作。我住在DK,所以我已经明确地设置了文化信息进行解析。

答案 3 :(得分:0)

var values = from value in File.ReadAllText("C:\\Yourfilename.txt").Split(' ')
             select double.Parse(value);