不能使用Enumerable.Count与列表,编译器假定List.Count编译器、假定、列表、Enumerable

2023-09-04 08:19:36 作者:喜欢你

我还没有发现这种行为还没有,也许是因为我preFER查询语法在VB.NET和分裂的查询和执行,方法为不同的语句。

如果我尝试编译下面这个简单的查询:

 昏暗的词库方式列表(字符串)=新名单(串)
昏暗的长字作为的Int32 = wordList.Count(功能(字)word.Length→100)
 

编译器不喜欢这一点,因为他预计没有论据 List.Count

  

公共只读属性算作整数没有任何参数和返回值类型不能被索引。

设置SharePoint2010列表的项目级权限

如果我宣布它作为的IEnumerable(串)它按预期工作:

 昏暗wordSeq为IEnumerable(串)=新名单(串)
昏暗的长字作为的Int32 = wordSeq.Co​​unt(功能(字)word.Length→100)
 

为什么会这样呢?什么$ P $使用该可枚举扩展方法Count代替ICollection.Count属性。请注意,我已经添加了进口System.Linq的无一不选项严格选项推断。我using.NET 4.0(Visual Studio 2010中)。

我很困惑,因为在C#这工作不会有问题:

 名单,其中,字符串>单词表=新的名单,其中,字符串>();
INT longWordCount = wordList.Count(字=> word.Length→100);
 

解决方案

这是按设计,引述的