Label.Text WindowsForms 中列表的平均值



我在WinForms中有点新,当我尝试在列表上使用Average((方法并将其直接保存到标签文本(Label.Text(时遇到问题。

this.label2.Text = MyList.Average().ToString(); 

我的程序编译正常,我在屏幕上看到上述操作的结果,但是当我将卡片切换到 Form1.cs[设计] 并尝试添加一些新元素时,我看不到窗口。只有它在那里的是这个错误:

Method 'System.Collections.Generic.List`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Average' not found. 

这个问题的原因是什么?我想向我的窗口添加一些东西,但根本无法在设计器中执行此操作,只能在代码中执行此操作,这使得 WinForms 无用。

似乎首先您已经尝试在代码隐藏文件中MyList.Average()。 之所以有效,是因为默认情况下,在所有代码隐藏中,正在使用Linq命名空间。

在顶部看到,你会看到using System.Linq;

然后你在Form.Designer.cs中尝试了同样的事情,你遇到了这个问题

方法 'System.Collections.Generic.List'1[[System.Int32, mscorlib, version=4.0.0.0, culture=neutral, PublicKeyToken=b77a5c561934e089]]。平均"未找到。

这是因为在Designer.cs中默认情况下不使用命名空间。

如注释中所述,您可以在设计器文件中对标签文本进行硬编码,然后在窗体的加载事件中分配适当的值(通常在已使用 Linq 的代码后面(。

但是,如果您确实想在 Designer.cs 中执行此操作,请在 Designer 文件的顶部添加using System.Linq;

最新更新