VB.Net和C#之间的LINQ语法差异

前端之家收集整理的这篇文章主要介绍了VB.Net和C#之间的LINQ语法差异前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Again,刚刚好奇:

在VB.Net中编程了几个项目之后,我惊讶的发现,C#和VB.NET LINQ使用之间有一些微妙的区别.
例如,如果要通过多个属性(列)对元素进行分组,我们需要显式创建一个新的匿名类型:

var procs = from c in Process.GetProcesses() 
            group c by new {c.BasePriority,c.Id} into d 
            select d;

而在VB.NET中,更简单的语法将会做:

Dim b = From c In Process.GetProcesses()
        Group c By c.BasePriority,c.Id Into Group
        Select Group

所以,在这里不需要创建一个带有“new”的类型.

有什么其他的区别?在C#和VB.NET中的LINQ语法之间是否有很好的比较?

有一些我所知道的差异,主要是VB.NET的LINQ有一些隐藏的宝石:

>不明确LINQ相关,但VB.NET支持匿名类型的Key修饰符.这允许您定义在比较匿名类型时使用匿名类型中的哪些属性.就我可以用C#来说它使用一切.这是VB.NET具有实际优势的地方.
> VB.NET支持跳过操作作为关键字:
Dim returnCustomers =从列表中跳过numToSkip选择一个可以在C#中执行此操作;但是必须通过扩展方法,没有语法糖.
> VB.NET LINQ还支持Skip While:From a In list跳过WhileCondition再次选择一个,C#可以做到这一点;但只能通过扩展方法.
>和4.5:与2& 3除了采取和采取
>“选择”关键字在VB.NET中是可选的.如果你想选择什么是当前的;那么工作正常:Dim shortWords = From l In list其中l.Length < 10在C#选择部分是必需的:var shortWords = from l in list其中l.Length < 10选择l
这些是我所知道的VB.NET的LINQ的额外“功能”.

例如;与C#:

var skip10 = (from c in customers select c).Skip(10);

并在VB.NET中

Dim skip10 = From c In Customers Skip 10

您可以在这里查看所有这些文档:http://msdn.microsoft.com/en-us/library/ksh7h19t(v=VS.90).aspx

猜你在找的VB相关文章