Поскольку все, что вам нужно, это счетчик, вы можете использовать тот факт, что все, что реализует IList<T>
, также реализует IEnumerable
; и, кроме того, в System.Linq.Enumerable
есть метод расширения, который возвращает количество любой (общей) последовательности:
var ienumerable = inputObject as IEnumerable;
if (ienumerable != null)
{
var count = ienumerable.Cast<object>().Count();
}
Вызов Cast
происходит потому, что из коробки нет Count
для неуниверсального IEnumerable
.