У меня есть требование перебирать список и условно устанавливать элемент данных для каждого элемента в коллекции:
Используя стандартный итератор foreach
, это тривиально:
//standard iteration
foreach (LogFileDataItem lfd in logFileData)
{
if (lfd.FileName.Equals(currentLine, StringComparison.OrdinalIgnoreCase))
{
lfd.SQLScriptExecuted = true;
}
}
Но это заставило меня задуматься о том, что это идеальная возможность для изучения LINQ, поэтому я реорганизовал вышеупомянутое:
foreach (LogFileDataItem lfd in logFileData.Where(item => item.FileName.Equals(currentLine, StringComparison.OrdinalIgnoreCase))
.Select(item => item))
{
lfd.SQLScriptExecuted = true;
}
Итак, мой вопрос на самом деле, насколько они отличаются?Есть ли какое-либо предложение существенное преимущество перед любым другим?