我在文本文件中的双重数据如下:
1.4 2.3 3.4
2.2 2.5 2.5
我想简单地从文件中读取这些数据 并将其存储在一个数组中。
请帮帮我。 我是C#的初学者
答案 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);