У меня есть пользовательская коллекция IList<user>
в качестве пользователей. Когда я попытался проверить users
является нулевым или пустым, я не получал разведывательную помощь (как IsNullOrEmpty
), поэтому я написал метод ниже удлинительныеIEnumerable vs Ilist - метод расширения IsNullOrEmpty
public static bool IsNullOrEmpty<T>(this IEnumerable<T> source)
{
if (source.IsNullOrEmpty())
{
return true;
}
return false;
}
К моему удивлению, я обнаружил, что IEnumberable имеет IsNullOrEmpty().
Как мне известно IList
расширяет ICollection
, который снова продлить IEnumerable
, если это так, то IList
должен поддерживать IsNullOrEmpty
.
Пожалуйста, исправьте, где я ошибаюсь.
'' IEnumerable еще не 'IsNullOrEmpty' метод, это расширение, которое вы написали выше;) Если вы это называете вы получите' StackOverflowException'. –
@TimSchmelter: D Спасибо –
В качестве примечания стороны: 'IEnumerable' should * not * предполагается повторяемым; единственный способ проверить, является ли последовательность пустой, - начать ее итерацию: если вы начнете ее повторять, она может быть мертвой, сделанной, ушедшей, законченной, никогда не увидившейся снова. –