1

我正在尝试在 WCF 中将 C# 转换为 vb.net,下面给出的是代码行

 var user = from u in users
               where u.Key == Id
               select u.Value;

在使用转换工具时,我得到以下结果

Dim user  = _Where u.Key = Id 

但同时我得到一个错误'预期语句结束'

我究竟做错了什么?有人可以帮我解决这个问题吗?

4

3 回答 3

3

使用查询语法实际上是相同的:

Dim users = From user In users
            Where user.Key = Id
            Select user

是退化的Select,如果你愿意,你可以使用方法语法来代替:

users.Where(Function(user) user.Key = ID)
于 2013-07-01T06:54:30.540 回答
0
Dim user = From u in users Where u.Key = id
           Select u.Value

您也可以使用 lambda。

Dim user = users.FirstOrDefault(Function(u)u.Key = id)

在 Lambda 中,我使用了 FirstOrDefault,因为您使用的是密钥。这意味着当找到第一个记录时,不会浪费额外的时间来搜索集合的其余部分。这也意味着user如果null什么也没找到。如果它只是一个Where子句,您最终可能会得到一个空集合。

于 2013-07-01T06:54:45.213 回答
0

尝试这个:

Dim user = From u in users 
Where u.Key = Id 
Select u.Value
于 2013-07-01T06:55:16.843 回答