Я согласен с Эдом Свангреном. Это выглядит кратким и достаточно читабельным.
На самом деле ответ на ваш вопрос зависит от 3 вещей:
- Чего вы хотите добиться - лучшей читаемости? лучшая производительность? и т.д.
- Тип «счетов»
- Как будет использоваться полученная коллекция.
Если вам нужна более высокая производительность, а в случае, когда «account» - это List, а полученная коллекция будет повторена или передана другому методу для итерации достаточно скоро после этих строк кода, я бы сделал что-то подобное: *
List<Account> filteredAccounts = new List<Account>();
accounts.ForEach(a => { if (a.AccountProjectID == accountProjectId) filteredAccounts.Add(a); });
Конечно, он менее читабелен, чем ваш оператор LINQ, но я бы использовал эти 2 строки вместо учетных записей. Выберите .......
И, конечно, он гораздо лучше оптимизирован для производительности, что, я считаю, всегда важно.