为什么c#(web)linq语法在vb(windows)linq语法中有所不同?

时间:2016-09-08 06:27:51

标签: c# vb.net linq

以c#web linq语法为例

var sample = (from a in db.sample where a.id == id).singleordefault();

在windows linq中

dim sample = (from a in db.sample where a.id = id)

因为他们有不同的环境?

3 个答案:

答案 0 :(得分:0)

两者都不相同,他们也使用相同的库System.Linq;

如果您使用下面的代码,那么只获得一个满足您条件的对象

var sample = (from a in db.sample where a.id == id).singleordefault();

如果您使用

dim dm = from a in db.sample where a.id == id 

然后获得与此匹配的完整列表。

所以两个查询都相同。

答案 1 :(得分:0)

我可以看到这里有两个不同之处:

  1. 第一个样本写在C#上(==表示"等于")。其次是VB.NET(=表示等于)
  2. 第一个示例将返回Samplenull(如果Sample是一个类)。第二 - IEnumerable<Sample>(C#语法)或IEnumerable(Of Sample)(VB.NET语法)

答案 2 :(得分:0)

列出的方法可以分为LINQ 方法语法和查询语法,两者在语义上相同。我们中的一些人发现查询语法简单易读,而其他人则更喜欢方法语法,因为它具有表现力。

以下将帮助您澄清;

Query and Method Syntax