为什么.Count没有括号?

fin*_*ook 5 c#

如果我List<string> items在C#中有一个项目列表(例如),我可以使用两者:

items.Count()
Run Code Online (Sandbox Code Playgroud)

items.Count
Run Code Online (Sandbox Code Playgroud)

获得项目总数.它们都有可用吗?为什么不只是有方法.Count()

我注意到,如果我过滤列表(并最终得到IEnumerable<string>):

items.Distinct().Count()
Run Code Online (Sandbox Code Playgroud)

然后.Count()必须使用.那为什么要List<string>允许.Count呢?

Jon*_*zzi 11

因为一个是(LINQ)扩展方法,System.Linq.Enumerable另一个是属性.

  • @wudzik如果它在接口中定义,它怎么不是类的属性:)接口是签名而不是实现.因此它是一个类的属性,恰好由接口强制执行. (3认同)