我正在尝试创建一个LINQ表达式,该表达式将一个值转换为另一种值类型(在这种情况下,是将字符串转换为整数),然后将转换后的值添加到列表中。
问题在于它显示了此错误:
Range Variable 'newValue' hides a variable in an enclosing block or a range variable previously defined in the query expression
这是在抱怨,因为newValue是在LINQ表达式之外定义的,但是我需要它,否则所有其他内容都会以红色显示为undefined。
我该如何解决?
Dim newValue As Integer
Dim newList As List(Of Integer) = (
From value In valueList
Where Integer.TryParse(value, newValue)
Select newValue).ToList()
答案 0 :(得分:2)
VB关于LINQ查询语法有一些有趣的想法。
您可以切换到lambda语法或在Select
中的变量周围加上括号:
Dim newList = valueList.Where(Function(value) Integer.TryParse(value, newValue)).Select(Function(value) newValue).ToList()
Dim newList As List(Of Integer) = (
From value In valueList
Where Integer.TryParse(value, newValue)
Select (newValue)).ToList()