Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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 如何通过ForEach的lambda表达式传递System.Action参数?_Vb.net_Lambda_Foreach_Compiler Errors_Uipath - Fatal编程技术网

Vb.net 如何通过ForEach的lambda表达式传递System.Action参数?

Vb.net 如何通过ForEach的lambda表达式传递System.Action参数?,vb.net,lambda,foreach,compiler-errors,uipath,Vb.net,Lambda,Foreach,Compiler Errors,Uipath,当尝试使用lambda表达式而不是AddressOf运算符时,使用ForEachsub的参数,我得到以下错误: 语句lambda无法转换为表达式树 这是代码的地址,它可以工作: lista.ForEach(new Action(Of String)(AddressOf Console.WriteLine)) 这是产生错误的lambda代码: lista.ForEach(new Action(Of String)(Function(x) x = "teste") 正在调用方法ForEach,因

当尝试使用lambda表达式而不是
AddressOf
运算符时,使用
ForEach
sub的参数,我得到以下错误:

语句lambda无法转换为表达式树

这是代码的
地址,它可以工作:

lista.ForEach(new Action(Of String)(AddressOf Console.WriteLine))
这是产生错误的lambda代码:

lista.ForEach(new Action(Of String)(Function(x) x = "teste")
正在调用方法
ForEach
,因此需要将
操作
作为参数传递


有人能帮我吗?或者告诉我这是否可能吗?

最终,你的问题是:

lista.ForEach(new Action(Of String)(Function(x) x = "teste")
ForEach
是一种不返回操作结果值的方法

将其更改为:

lista.ForEach(new Action(Of String)(Sub(x) x = "teste"))
尽管我一点也不喜欢该方法签名,但您将需要执行的操作复杂化了

考虑到ForEach方法()接受
操作
,因此无需声明
新操作(字符串)
。您只需要关注希望传递给每个元素执行的列表/数组的Lambda Express

良好的阅读理解基础知识

因此,请尝试以下模式:

lista.ForEach(Sub(x) x = "teste")


lista.ForEach(新操作(字符串)(Sub(x)x=“teste”)
谢谢Fabio,但我得到了相同的编译错误。“语句lambda…”下一行将编译ok->
lista.ForEach(新操作(字符串)(Sub(值)Console.WriteLine(值)))
。因此,您甚至可以删除
新操作…
并将lambda传递到那里:
lista.ForEach(Sub(value)Console.WriteLine(value))
当我使用
控制台时,lista的类型是什么。WriteLine(变量)
它工作得很好,我已经能够像那样使用它了。但是当我试图用变量
variable=“teste”
执行一些过程时,我得到了错误。
lista
是一个
列表
类型:TypeSystem.Collections.Generic.List`1[[System.String,mscorlib,版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089]]
lista.ForEach(Function(x) x = "teste")