gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 07:55:32 26 4
gpt4 key购买 nike

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 有一些隐藏的 gem :

  1. 没有明确与 LINQ 相关,但 VB.NET 支持 Key匿名类型的修饰符。这允许您定义在比较匿名类型时使用匿名类型中的哪些属性。据我所知,C#;它使用一切。这就是 VB.NET 具有实际优势的地方。
  2. VB.NET 支持 Skip作为关键字的操作: Dim returnCustomers = From a In list Skip numToSkip Select a您可以在 C# 中执行此操作;但必须通过扩展方法,没有语法糖。
  3. VB.NET LINQ 还支持 Skip While : From a In list Skip While someCondition Select a同样,C# 可以做到这一点;但只能通过扩展方法。
  4. 和 4.5.:与 2 和 3 相同,除了 TakeTake While
  5. Select关键字在 VB.NET 中是可选的。如果你想选择当前的;那么效果很好:Dim shortWords = From l In list Where l.Length < 10在 C# 中;选择部分是必需的:var shortWords = from l in list where l.Length < 10 select 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

关于c# - VB.Net 和 C# 之间 LINQ 语法的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6515037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com