Какой минимальный интерфейс имеет свойство Count в .Net? - PullRequest
5 голосов
/ 21 мая 2010

Мне нужно изменить метод с одним параметром, который принимает серию объектов. Мне нужно найти самый низкий интерфейс (в дереве наследования), который имеет свойство Count. До сих пор я использовал IEnumerable, но поскольку в нем нет Count, мне нужно изменить его на более широкий интерфейс, чтобы метод мог работать с наибольшим числом типов рядов (коллекций, списков, массивов и т. Д.).

Заранее спасибо.

Ответы [ 3 ]

6 голосов
/ 21 мая 2010

ICollection добавляет свойство Count.

Как правильно заметил @Joren, у IEnumerable<T> есть метод расширения Count<T>(), если вы счастливы сделать свою коллекцию универсальной. Однако, как указал @Joel Coehoorn, нецелесообразно использовать это, поскольку оно вызывает итерацию последовательности.

5 голосов
/ 21 мая 2010

ICollection добавляет свойство Count.

4 голосов
/ 21 мая 2010

System.Collections.ICollection, а также System.Collections.Generic.ICollection<T>. Эти два интерфейса не имеют отношения друг к другу, но оба наследуют от IEnumerable, поэтому они находятся на одном уровне.

IEnumerable, очевидно, не имеет свойства Count (количество не обязательно предопределено).

...