2010-08-10 26 views
1

我在文本文件双倍数据如下图所示:我想读取文本文件中的一些双数据在C#

1.4 2.3 3.4 
2.2 2.5 2.5 

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

请帮帮我。 我在C#

+2

这是数据如何存储在文件中?空间分隔,同一行上有多个双打? – Gishu 2010-08-10 09:47:15

回答

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)); 
    } 
} 
+2

+1,尽管我觉得LINQ对于初学者来说有点太过分了:) – BoltClock 2010-08-10 09:46:49

+0

@BoltClock - +1。也让初学者工作一下吧......发布代码可能会“给他们一条鱼”,可以这么说.. – Gishu 2010-08-10 09:49:40

0

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

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

如果双打被空格或换行符分开,这将起作用。如果有多个空格/换行符,它也可以工作。我住在DK,所以我已经明确了文化信息的解析。

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

与以下指导咨询MSDN ...

File类来读取文件内容字符串
String.Split分裂根据您的分隔
和Double.Parse数字转换从串变成双。