2013-12-12 3 views
-2

Предыдущий контекстСвойство Count from ICollection <T> все еще существует для обратной совместимости?

Чтобы понять, что я анкетирование, увидеть первый вопрос "Why does .Count work without parentheses?"

В этом вопросе обсуждается, почему существует Count (свойство) и Count() (метод) в классах, которые реализуют ICollection<T>. этот вопрос был answered satisfactorily.

Но ниже ответ на замечание, еще один вопрос был поднят finoutlook:

Вопрос

Свойство Count еще вокруг (в более поздних версиях .Net к технологии Linq) для обратной совместимости ?

ответ

3

Нет, это так, что коллекция может вернуть количество элементов, которые есть непосредственно, без необходимости перебирать их.

Enumerable.Count() имеет такую ​​оптимизацию, что если коллекция реализует ICollection<T>, она будет использовать свойство вместо повторения по коллекции по одному элементу за раз, что вам и нужно было бы сделать иначе.

Это чувствует себя как очень полезное свойство для меня. Даже если бы структура была создана сегодня с учетом LINQ, я уверен, что все равно будет что-то очень похожее. (По общему признанию, я могу думать о различных изменениях, которые я хотел бы видеть в интерфейсах коллекции, но это другое дело.)

0

Хотя это может быть правда (по-прежнему существует для обратной совместимости), с моей точки зрения, обратная совместимость не является причиной того, что это свойство все еще существует.

Если у вас есть класс, который реализует ICollection<T>, то в большинстве случаев будет непродолжительным способом подсчета элементов внутри (в закрытом или защищенном классе).

А также коллекция должна знать, сколько элементов она имеет. Насколько мне известно, это основная цель этого свойства.

 Смежные вопросы

  • Нет связанных вопросов^_^