2010-04-28 1 views
1

У меня есть файл целых чисел. первое число - число последующих чисел. как самый простой способ взять этот файл в массив? C#Самый простой способ взять файл в массив? - C#

Пример 1: 8 1 2 3 4 5 6 7 8

Пример 2: 4 1 2 3 0

Пример 3: 3 0 0 1

+1

Исправьте ваш вопрос о том, как выглядит текстовый файл, разделенный запятой, разделитель строк разделен, вкладка разделена ... – Snake

+0

У меня был аналогичный вопрос, если это помогает: http://stackoverflow.com/questions/2290254/read-text-data- from-file-using-linq –

+1

Являются ли числа, хранящиеся в двоичной форме, или это текстовый файл, где каждая строка может быть интерпретирована как целое число? –

ответ

8
int[] numbers = File 
    .ReadAllText("test.txt") 
    .Split(' ') 
    .Select(int.Parse) 
    .Skip(1) 
    .ToArray(); 

или если вы имеют ряд в каждой строке:

int[] numbers = File 
    .ReadAllLines("test.txt") 
    .Select(int.Parse) 
    .Skip(1) 
    .ToArray(); 
+0

Это потрясающе. – Snake

+0

Это также включает «количество» чисел в строке в массиве. –

+0

@Rob, хорошее замечание, обновил мой ответ. –

1
int[] numbers = File 
    .ReadAllLines("test.txt") 
    .First() 
    .Split(" ") 
    .Skip(1) 
    .Select(int.Parse) 
    .ToArray(); 
0

если ваш файл состоит из всех чисел в стиле колонке (под Афоризм), чем вы можете прочитать его, как этот

static void Main() 
{ 
    // 
    // Read in a file line-by-line, and store it all in a List. 
    // 
    List<int> list = new List<int>(); 
    using (StreamReader reader = new StreamReader("file.txt")) 
    { 
     string line; 
     while ((line = reader.ReadLine()) != null) 
     { 
      list.Add(Convert.ToInt16(line)); // Add to list. 
      Console.WriteLine(line); // Write to console. 
     } 
    } 
    int[] numbers = list.toArray(); 
} 

ок, пост был обновлен после того, как я отправил это, но может иметь некоторую помощь, хотя :)

+0

большое спасибо! – Alexry

Смежные вопросы