为什么`select`和`sub`在VB Linq表达式中有括号?

时间:2011-07-12 20:37:56

标签: vb.net linq c#-to-vb.net

我从C#转换了以下查询:

src.Select((c, i) => src.Substring(i)).Count(sub => sub.StartsWith(target))

到VB.NET查询:

src.[Select](Function(c, i) src.Substring(i)).Count(Function([sub]) [sub].StartsWith(target))

使用Developer Fusion。我只是想知道为什么VB.NET版本始终有[]。

4 个答案:

答案 0 :(得分:7)

selectsub是VB.NET中的关键字

答案 1 :(得分:5)

SubSelect是VB.NET中的关键字,因此您必须将它们标记为能够将它们用作变量名称 - 通常使用关键字作为变量名称应该避免 - 只需重命名它们,你可以摆脱大括号。

答案 2 :(得分:5)

原因是SelectSub都是VB.Net中的保留字。围绕它们的[]是一种逃避机制,导致它们不被视为关键字

答案 3 :(得分:0)

一个小问题:.Select不需要括号:

src.Select(Function(c, i) src.Substring(i)).Count(Function([sub]) [sub].StartsWith(target))

工作正常。