Давайте рассмотрим подробнее go.
List<T>
имеет свойство с именем Count
. Поскольку это свойство, вы получаете к нему доступ без использования скобок:
int count = mylist.Count;
Существует также метод расширения в классе System.Linq.Enumerable
, который определяет Count()
метод для всего, что может быть перечислено (т.е. что-либо, что реализует IEnumerable<T>
): это включает List<T>
. Он вызывается так, как если бы это был метод List<T>
.
Однако компилятор найдет этот метод расширения, только если у вас есть using System.Linq;
в верхней части файла.
Например:
using System.Linq;
...
int count = mylist.Count();
(В указанном c случае List<T>
метод расширения Count()
просто получит доступ к свойству Count
, поэтому при использовании любого из них будет работать. Однако более нормально использовать свойство Count
).
Таким образом, разница в том, что в школе у вас было using System.Linq;
вверху файла, а у вас нет дома.