Имеется txt файл вида:
Джон Добрый день!
Секретарь Здравствуйте! Вы по какому вопросу?
Джон Извините, я хотел бы сдать сессию пораньше, чтобы уехать домой.
Секретарь По какой причине Вы хотите досрочно сдать сессию?
Нужно объединить 1 + 2 Результат:
Джон Добрый день!
Секретарь Здравствуйте! Вы по какому вопросу?
Потом 3 + 4
Джон Извините, я хотел бы сдать сессию пораньше, чтобы уехать домой.
Секретарь По какой причине Вы хотите досрочно сдать сессию?
И так до конца файла
Считываю файл так
FileStream stream = new FileStream(path, FileMode.Open);
StreamReader reader = new StreamReader(stream);
string str = reader.ReadLine();
stream.Close();
Console.WriteLine(str);
Но дальше не знаю,что делать
С помощью библиотеки morelinq это можно сделать так:
var stringsPairs = File.ReadLines(...).Batch(2).Select(p => string.Join("\n", p));
Зачем читать по чуть-чуть, если можно одной строкой обойтись:
var text = File.ReadAllLines(@"C:\downloads\asdf123.txt");
Или прочитать их же лениво, но по-прежнему одной строкой:
var text = File.ReadLines(@"C:\downloads\asdf123.txt");
Получим массив строк (ReadAllLines) или IEnumerable<string> (ReadLines):
И после этого соединить строки:
var result = string.Join(" ", text);
Разделитель по вкусу - хоть пробел, хоть перевод строки.
Если же у вас нужно по две объединить (посмотрел разметку вопроса, но не уверен, что правильно понял), то:
public IEnumerable<string> Twix(IEnumerable<string> data)
{
var e = data.GetEnumerator();
while (e.MoveNext())
{
var el1 = e.Current;
if(e.MoveNext())
{
var el2 = e.Current;
yield return $"{el1} {el2}";
}
else
{
yield return el1;
}
}
}
Запускаем:
var result = Twix(text);
На выходе:
И на закуску linq-однострочник (если будет нечётное число строк, то последняя не попадёт в результат):
var result = text.Where((a,i) => i % 2 == 0).Zip(text.Where((a,i) => i % 2 == 1), (a,b) => $"{a} {b}");
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости