Среднее значение списка в Label.Text WindowsForms - PullRequest
0 голосов
/ 14 мая 2018

Я немного новичок в WinForms, и у меня возникают проблемы, когда я пытаюсь использовать метод Average () в списке и сохраняю его прямо в текст метки (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 голосов
/ 14 мая 2018

Кажется, что сначала вы попробовали MyList.Average() в своем коде позади файла. это сработало, потому что по умолчанию во всем коде позади используется пространство имен Linq.

см. Вверху, вы увидите using System.Linq;

и затем вы попробовали то же самое в вашем Form.Designer.cs, и вы столкнулись с этой проблемой

Метод 'System.Collections.Generic.List`1 [[System.Int32, mscorlib, Версия = 4.0.0.0, Культура = нейтральный, PublicKeyToken = b77a5c561934e089]]. Среднее значение не найдено.

Это потому, что в Designer.cs по умолчанию пространства имен не используются.

Как уже упоминалось в комментариях, вы можете жестко кодировать текст метки в файле конструктора, а затем назначать правильное значение в событии загрузки формы (которое обычно находится в коде позади того места, где Linq уже используется).

Но если вы действительно хотите сделать это в Designer.cs, добавьте using System.Linq; вверху вашего файла Designer.

...