索引超出了数组的范围 - 整数

Mar*_*hal 1 c# arrays indexing winforms

我刚遇到一个常见的问题,但我不确定为什么会发生这种情况.

string s;
int c1, c2, c3, c4;    

private void button2_Click(object sender, EventArgs e)
{
    String number;
    s = textBox1.Text;
    int[] d = s.Select(c => (int)c - (int)'0').ToArray();

    try
    {
        c1 = (4 * d[1] + 10 * d[2] + 9 * d[3] + 2 * d[4] + d[5] + 7 * d[6]) % 11;
        c2 = (7 * d[1] + 8 * d[2] + 7 * d[3] + d[4] + 9 * d[5] + 6 * d[6]) % 11;
        c3 = (9 * d[1] + d[2] + 7 * d[3] + 8 * d[4] + 7 * d[5] + 7 * d[6]) % 11;
        c4 = (d[1] + 2 * d[2] + 9 * d[3] + 10 * d[4] + 4 * d[5] + d[6]) % 11;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

    number = d[1]+d[2]+d[3]+d[4]+d[5]+d[6]+c1+c2+c3+c4.ToString();
    textBox2.Text = number;    
}
Run Code Online (Sandbox Code Playgroud)

它将接受第一个TextBox罚款中的数字.一旦它移动到捕获部分,它将弹出一个错误Index was outside the bounds of the array是否有一些明显我缺少的东西?或者这对我的程序来说是非常独特的?

CSh*_*pie 5

我认为你认为你的阵列从1到6,从0到5.