为什么我的索引在MVC 4中超出了范围?

时间:2016-05-03 07:34:48

标签: asp.net-mvc-4

我已经尝试在每个月计算一年后创建一些增加数量的列表。 例如,在第1个月number = 1,第2个月number = 3,第3个月number = 5。 计算结果如下number[i] = i + number[i - 1]。哪个i是月份。

我想显示所有列表

Month[1] = 1,
Month[2] = 3,
Month[3] = 5,
Month[4] = 7,
Month[5] = 9,
Month[6] = 11,
Month[7] = 13,
...
Month[12] = 23

这是我的控制器

for (i = 1; i <= 12; i++)
{
    List<int> number = new List<int>();
    if (i <= 12)
    {
        number[i] = a(i, number[i - 1]); 
    }
    else 
    {
        //something else
    }
}

这是我的a功能

public int a(int month, int number)
{
    try
    {
        a = month + number;
    }
    catch (Exception ex)
    {
        throw ex;
    }
    return a;
}

但是,执行时我得到了这个错误

  

指数超出范围。必须是非负数且小于集合的大小。

我已将控制器更改为

for (i = 0; i <= 12; i++)
{
    //...
}

但是有同样的错误。有人能帮我吗?为什么我收到此错误?

1 个答案:

答案 0 :(得分:0)

试试这个

Fiddle demo

int[] number = new int[13];
        for (int i = 1; i <= 12; i++)
        {
            if (i <= 12)
            {
                number[i] = a(i, number[i - 1]);
            }
            else
            {
                //something else
            }
        }
        int j = 1;
        List<int> item = new List<int>();
        foreach (var a in number)
        {
            if (j <= 12)
            {
                item.Add(a);
            }
            else
            {
                break;
            }
            j++;
        }

   public int a(int month, int number)
    {
        int a = 0;
        try
        {
            a = month + number;
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return a;
    }