使用foreach循环计算平均值,高分,低分

时间:2011-04-25 04:42:17

标签: c#

我有以下代码。如何使一位和两位数百分比都有效并且不会导致例外?

private void calcStats()
{
    string value;
    int value2;
    int total = 0;
    decimal adverage;
    decimal high;
    decimal low;

    lblHigh.Text = Convert.ToString(0);

    foreach (string itemInList in lstBox.Items)
    {
        value = (itemInList.Substring(50, 3));
        value2 = int.Parse(value);

        total += (value2);
    }

   adverage = total/(lstBox.Items.Count);

   lblAdverage.Text = Convert.ToString(adverage);
}

1 个答案:

答案 0 :(得分:1)

这次您的问题出现在代码的另一部分。在btnAdd_Click方法中,您有一个这样的代码段:

    //Add the data elements to the row
    row = name.ToString().PadRight(25);
    row += ID.ToString().PadRight(25);
    row += score.ToString();

您还需要填写分数:

    //Add the data elements to the row
    row = name.ToString().PadRight(25);
    row += ID.ToString().PadRight(25);
    row += score.ToString().PadRight(3);

没有PadRight(3)您的单个和两位数分数会引发异常,因为该单个数字位于第50位,并且在该单个数字后没有任何内容可读。通过填充,您知道所有3个可能的分数(单,双,三位数)占。解析函数将处理空格,只需给出数字,无论它是1,10还是100。