我还没有发现这种行为还没有,也许是因为我preFER查询语法在VB.NET和分裂的查询和执行,方法为不同的语句。
如果我尝试编译下面这个简单的查询:
昏暗的词库方式列表(字符串)=新名单(串)
昏暗的长字作为的Int32 = wordList.Count(功能(字)word.Length→100)
编译器不喜欢这一点,因为他预计没有论据 List.Count
:
公共只读属性算作整数没有任何参数和返回值类型不能被索引。
如果我宣布它作为的IEnumerable(串)
它按预期工作:
昏暗wordSeq为IEnumerable(串)=新名单(串)
昏暗的长字作为的Int32 = wordSeq.Count(功能(字)word.Length→100)
为什么会这样呢?什么$ P $使用该可枚举
扩展方法Count代替ICollection.Count属性。请注意,我已经添加了进口System.Linq的
无一不选项严格
和选项推断
是在
。我using.NET 4.0(Visual Studio 2010中)。
我很困惑,因为在C#这工作不会有问题:
名单,其中,字符串>单词表=新的名单,其中,字符串>();
INT longWordCount = wordList.Count(字=> word.Length→100);
解决方案
这是按设计,引述的