Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vb.net中的Lambda表达式错误_Vb.net_Linq - Fatal编程技术网

vb.net中的Lambda表达式错误

vb.net中的Lambda表达式错误,vb.net,linq,Vb.net,Linq,我是linq的新手。我以前从未使用过linq。所以,当我有一个场景将选中的项目从左列表移动到右列表时,我从C#中的搜索中得到了一个很好的解决方案,但我将其转换为VB。这是我的密码 Dim leftItems = lb_left.Items.Cast(Of ListItem)().ToList() Dim rightItems = lb_right.Items.Cast(Of ListItem)().ToList() 'Get all selected items from left box

我是linq的新手。我以前从未使用过linq。所以,当我有一个场景将选中的项目从左列表移动到右列表时,我从C#中的搜索中得到了一个很好的解决方案,但我将其转换为VB。这是我的密码

Dim leftItems = lb_left.Items.Cast(Of ListItem)().ToList()

Dim rightItems = lb_right.Items.Cast(Of ListItem)().ToList()

'Get all selected items from left box

Dim LeftSelectedItems = leftItems.Where(Function(a) a.Selected).ToList()

'Add all selected items to right box
 'Clear lb_right Items and add sorted list

lb_right.Items.Clear()

LeftSelectedItems.Union(rightItems).OrderBy(Function(a) a.Text).ToList().ForEach(Function(b) lb_right.Items.Add(b))

'Remove all selected items from left box

LeftSelectedItems.ForEach(Function(a) lb_left.Items.Remove(a))
以上是我从互联网上获得的代码,用于从左向右移动列表框。但是在
ForEach
中的函数上,它给了我一个类似的错误“表达式不产生值”


我真的被这个错误绊倒了。请求您的快速回复。

来自以下文档:

单行函数的主体必须是返回值的表达式,而不是语句。单行函数没有返回语句。单行函数返回的值是函数体中表达式的值

正如编译器所说,
Add
不会返回值

我相信您可以使用
Sub
而不是
Function
,并使用多行版本-但我认为这不是最好的工作方式


看起来您应该创建一个查询,然后使用一种“添加所有这些项”调用。不幸的是,您没有告诉我们lb_right的类型,甚至没有告诉我们您是否正在使用WPF、WinForms、ASP.NET等。

来自以下文档:

LeftSelectedItems.ForEach(Sub(a) lb_left.Items.Remove(a))
单行函数的主体必须是返回值的表达式,而不是语句。单行函数没有返回语句。单行函数返回的值是函数体中表达式的值

正如编译器所说,
Add
不会返回值

我相信您可以使用
Sub
而不是
Function
,并使用多行版本-但我认为这不是最好的工作方式

看起来您应该创建一个查询,然后使用一种“添加所有这些项”调用。不幸的是,您没有告诉我们lb_right的类型,甚至没有告诉我们您是否正在使用WPF、WinForms、ASP.NET等

LeftSelectedItems.ForEach(Sub(a) lb_left.Items.Remove(a))