Я должен получить значения, введенные в текстовое поле, а затем отобразить общее количество введенных значений, среднее значение и количество введенных значений.Почему мой список полностью не вычисляется правильно? C#
До сих пор я закодированы:
List<int> intScoreList = new List<int>(20);
decimal decScoreAverage = 0m;
decimal decScoreTotal = 0m;
private void btnAdd_Click(object sender, EventArgs e)
{
int intScore = Convert.ToInt32(txtScore.Text);
int intScoreCount = 0;
intScoreList.Add(intScore);
for (int i = 0; i < intScoreList.Count; i++)
{
intScoreList[0] = intScore;
decScoreTotal += intScoreList[i];
intScoreCount++; //correct
decScoreAverage = decScoreTotal/intScoreCount; //correct
}
Когда я вхожу тестовые значения 30, то 40, то общее дает мне 110 (30 + 40 * 2), а не 70 (30 + 40). Где я иду не так?
Используйте скопления Linq, а не цикл 'for'. –
Не совсем понятно, почему вы переписываете 'intScoreList [0]' с 'intScore' вообще ... почему вы это делаете? И почему вы вычисляете среднее значение * в цикле *? И почему вы держите отдельный счет, когда у вас есть 'intScoreList.Count'? Почему бы просто не использовать 'average = ((десятичный) intScoreList.Sum())/intScoreList.Count' –
Какая платформа? ASP.NET, WinForms и т. Д.? Похоже, что обработчик нажатия кнопки может быть вызван дважды - я видел, как это происходит в ASP.NET. – Tim