Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/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
C# 无法将void分配给带有var和foreach的隐式类型局部变量_C#_Foreach_Lambda_Var - Fatal编程技术网

C# 无法将void分配给带有var和foreach的隐式类型局部变量

C# 无法将void分配给带有var和foreach的隐式类型局部变量,c#,foreach,lambda,var,C#,Foreach,Lambda,Var,我正在尝试用代码列出表单中的所有按钮名称 var v = new List<Form1>() { this }.ForEach(x => { x.GetType().Name.Contains(typeof(Button).Name); }); var v=new List(){this}.ForEach(x=>{x.GetType().Name.Contains(typeof(Button.Name);}); 而且总是会出错 无法将void赋值给隐式类型的局部变量 如何绕

我正在尝试用代码列出表单中的所有按钮名称

var v = new List<Form1>() { this }.ForEach(x => { x.GetType().Name.Contains(typeof(Button).Name); });
var v=new List(){this}.ForEach(x=>{x.GetType().Name.Contains(typeof(Button.Name);});
而且总是会出错

无法将void赋值给隐式类型的局部变量


如何绕过它?

Foreach
返回
void
,这就是为什么会出现错误。你在作业右侧的陈述没有返回任何内容。您可以在以下两个语句中执行相同的操作:

var v = new List<Form1>() { this };
v.ForEach(x => { x.GetType().Name.Contains(typeof(Button).Name); });
var v=newlist(){this};
v、 ForEach(x=>{x.GetType().Name.Contains(typeof(Button.Name);});
在当前代码中,您正在创建一个新的
列表
,然后迭代列表中的每个项目,但您不会返回任何内容

正如Jon Skeet在评论中指出的那样,这不会对名单产生任何影响。我猜您正在尝试从您可以执行的表单列表中获取所有按钮:

var allButtons = v.SelectMany(r => r.Controls.OfType<Button>()).ToList();
var allButtons=v.SelectMany(r=>r.Controls.OfType()).ToList();

我怀疑您真的在寻找
的位置
-在
ForEach
调用中调用
Contains
对您没有任何帮助。同样,如果您对按钮感兴趣,我认为您并不是在寻找表单列表。我怀疑您可能正在寻找:

var buttons = this.Controls.OfType<Button>().ToList();
var buttons=this.Controls.OfType().ToList();

请注意,这不会进入嵌套控件中-如果需要这样做,您将需要一些递归的东西。(你很可能会找到其他问题来问这个问题……我们不知道这是WinForms、WebForms还是其他东西……这没有帮助……

你不能这样做。在
v
上调用foreach,而不是在构造的对象上,因为foreach返回void,然后您尝试将void分配给variable@tonni:不可以。您可以在使用成员之前使用括号排序分配,但不能使用初始化。@habib您的更新不起作用,但我理解您的目的say@tonni嗯,什么不起作用,它应该为您的
列表中的所有项目返回一个
列表
,您是否收到任何错误/异常?@Habib--不包括linq,现在可以完美工作:),thnx寻求帮助