Проверки на пустые перечисления
2 мин
Перевод
Недавно, во время разбора кода одной программы я заметил метод, который выглядел примерно так:
Метод принимает дженерик-перечисление и проверяет, пустое ли оно. Видите ли вы тут потенциальную проблему? Я намекну, проблема в этой строчке:
И в чем же тут проблема? Проблема в том, что эта строчка может оказаться очень неэффективной.
public void Foo<T>(IEnumerable<T> items)
{
if(items == null || items.Count() == 0)
{
// Оповестить о пустом перечислении
}
}
Метод принимает дженерик-перечисление и проверяет, пустое ли оно. Видите ли вы тут потенциальную проблему? Я намекну, проблема в этой строчке:
items.Count() == 0
И в чем же тут проблема? Проблема в том, что эта строчка может оказаться очень неэффективной.

Этой статьей я начинаю цикл, цель которого – создание наиболее полного руководства по Managed Extensibility Framework (MEF) на русском языке. Результатом цикла, в моих планах, станет создание бесплатной электронной книги о MEF. Если у вас есть соображения или предложения по этому поводу – дайте мне знать в комментариях. Я надеюсь, что совместными усилиями мы можем создать отличное руководство.
