как выражение запроса:
var query = from assembly in AppDomain.CurrentDomain.GetAssemblies()
from suffix in namespaceSuffixes
where assembly.GetName().Name.EndsWith(suffix)
select new { assembly, suffix };
foreach (var result in query)
{
Register(container, result.assembly, result.suffix);
}
Я не пошел по пути использования Ани List<T>.ForEach
- лично я предпочитаю использовать нормальный оператор foreach
. LINQ отлично подходит для декларативных запросов; foreach
- это Годо для обязательных действий, предпринимаемых для каждого элемента.
Обратите внимание, что мое выражение запроса почти эквивалентно точечной записи Ани; компилятор C # будет использовать немного другую перегрузку SelectMany
, вот и все. В этом частном случае я думаю, что выражение запроса легче понять; в более простых случаях я предпочитаю точечные обозначения.