Я хочу прочитать некоторые двойные данные из текстового файла в C # - PullRequest
1 голос
/ 10 августа 2010

мои двойные данные в текстовом файле, как показано ниже:

1.4  2.3  3.4
2.2  2.5  2.5

Я хочу просто прочитать эти данные из файла и сохранить его в массиве.

пожалуйста, помогите мне. Я новичок в C #

Ответы [ 4 ]

3 голосов
/ 10 августа 2010

Вы можете использовать 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 голос
/ 10 августа 2010

Проконсультируйтесь с MSDN со следующими указателями ...

Класс файла для чтения содержимого файла в виде строки
String.Split для разделения чисел на основе разделителя
и Double.Parse для преобразованияиз строки в двойную.

0 голосов
/ 10 августа 2010
var values = from value in File.ReadAllText("C:\\Yourfilename.txt").Split(' ')
             select double.Parse(value);
0 голосов
/ 10 августа 2010

Попробуйте, это должно быть несколько более пуленепробиваемым, чем некоторые другие ответы.Он не проверяет наличие недействительных записей данных, которые не могут быть правильно проанализированы.

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

Это будет работать, если двойные значения разделены пробелом или переводом строкиИ это также работает, если есть несколько пробелов / разрывов строк.Я живу в ДК, поэтому я установил информацию о культуре для анализа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...