Label.Text WindowsForms中列表的平均值

时间:2018-05-13 23:44:47

标签: c# winforms label

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

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

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

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

这个问题的原因是什么?我想在我的窗口中添加一些东西,但是在Designer中只是不能这样做,只能在代码中,这使得WinForms无用。

1 个答案:

答案 0 :(得分:0)

首先,您在代码隐藏文件中尝试了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没有使用名称空间。

如评论中所述,您可以在设计器文件中硬编码标签文本,然后在Form的加载事件(通常在已使用Linq的代码后面)中分配适当的值。

但如果您真的想在Designer.cs中这样做,请在Designer文件的顶部添加using System.Linq;