我正在尝试在 WCF 中将 C# 转换为 vb.net,下面给出的是代码行
var user = from u in users
where u.Key == Id
select u.Value;
在使用转换工具时,我得到以下结果
Dim user = _Where u.Key = Id
但同时我得到一个错误'预期语句结束'
我究竟做错了什么?有人可以帮我解决这个问题吗?
我正在尝试在 WCF 中将 C# 转换为 vb.net,下面给出的是代码行
var user = from u in users
where u.Key == Id
select u.Value;
在使用转换工具时,我得到以下结果
Dim user = _Where u.Key = Id
但同时我得到一个错误'预期语句结束'
我究竟做错了什么?有人可以帮我解决这个问题吗?
使用查询语法实际上是相同的:
Dim users = From user In users
Where user.Key = Id
Select user
是退化的Select
,如果你愿意,你可以使用方法语法来代替:
users.Where(Function(user) user.Key = ID)
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
子句,您最终可能会得到一个空集合。
尝试这个:
Dim user = From u in users
Where u.Key = Id
Select u.Value