Как считывать определённые строки по позициям?

У меня есть файл в котором хранятся структурированные по позициям строки данных. Наглядный пример:

Собака Коли
Кот Виталика
Рыбка Саши

Вопрос состоит в следующем: каким образом считать строку с помощью её номера? К примеру мне нужно считать "Кот Виталика" который является третьей строкой в файле. Как можно реализовать считывание строки по её номеру в файле?


Ответы (2 шт):

Автор решения: CrazyElf

Если строки не фиксированной одинаковой длины, то вариант один - читать файл подряд начиная с самого начала и считать строки, пока не дойдёте до нужной. Если бы строки были фиксированной длины, то можно было бы отпозиционироваться сразу на нужную позицию через seek.

→ Ссылка
Автор решения: A K

Если проект учебный и длина файла небольшая - я бы просто прочитал весь файл в массив строк:

string[] content = File.ReadAllLines(fullFileName);

И для обращения к какой-то конкретной строке использовал бы индекс массива, например, вывод строки три (проверка на выход за пределы массива опущена):

Console.WriteLine(content[2]);

Я подобным образом в простеньких скриптах модифицирую файлы, а потом записываю обратно модифицированный массив:

File.WriteAllLines(fullFileName, content);

Этот подход не единственный, мне он нравится тем, что можно использовать linq.

И если у вас файл большой то лучше читать файл поблочно.

→ Ссылка