Часто, когда я имею дело с последовательностями LINQ, я хочу отправить каждый элемент методу, возвращающему void, избегая цикла foreach. Однако я не нашел элегантный способ сделать это. Сегодня я написал следующий код:
private StreamWriter _sw;
private void streamToFile(List<ErrorEntry> errors)
{
if (_sw == null)
{
_sw = new StreamWriter(Path.Combine
(Path.GetDirectoryName(_targetDatabasePath), "errors.txt"));
}
Func<ErrorEntry, bool> writeSelector =
(e) => { _sw.WriteLine(getTabDelimititedLine(e)); return true; };
errors.Select(writeSelector);
_sw.Flush();
}
Как вы можете видеть, я пишу функцию лямбда, которая возвращает true, и я понимаю, что метод Select вернет последовательность логических значений - я просто проигнорирую эту последовательность. Однако, это кажется немного noobish и jank. Есть ли элегантный способ сделать это? Или я просто неправильно использую LINQ?
Спасибо.