vb.net中的Lambda表达式错误

San*_*mas 1 linq vb.net

我是这个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))
Run Code Online (Sandbox Code Playgroud)

以上是我从互联网上移动从左到右列表框的代码.但是在它的功能ForEach上给了我一个有点错误"表达不会产生价值"

我真的被这个错误所困扰.请求快速回复..

Mar*_*zek 8

LeftSelectedItems.ForEach(Sub(a) lb_left.Items.Remove(a))
Run Code Online (Sandbox Code Playgroud)