C# 从数组中获取值并在程序中使用这些值

C# 从数组中获取值并在程序中使用这些值,c#,C#,我有下面的代码,它从一个输入文本文件创建了两个整数数组,我试图使用这两个数组中的值使用存储过程读取数据库,但我遇到了以下错误: 索引超出了数组的边界 当我运行并调试试图分配的程序时出错 tests[x]=testId在代码中 //read the error file using (var reader = new StreamReader(@"D:\Temp\AccessError.txt")) try { int testId = 0; int

我有下面的代码,它从一个输入文本文件创建了两个整数数组,我试图使用这两个数组中的值使用存储过程读取数据库,但我遇到了以下错误:

索引超出了数组的边界

当我运行并调试试图分配的程序时出错
tests[x]=testId在代码中

//read the error file
using (var reader = new StreamReader(@"D:\Temp\AccessError.txt"))
    try
    {
        int testId = 0;
        int eventId = 0;
        string line;
        while ((line = reader.ReadLine()) != null)
        {
            //split the line
            string[] parts = line.Split(new[] { "Event" },   StringSplitOptions.None);

            //get valid integers
            int[] tests = GetInts(parts[0].Split(' ', '\'')).ToArray();
            int[] events = GetInts(parts[1].Split(' ', '\'')).ToArray();

            foreach (int x in tests)
            {
                tests[x] = testId;
            }
            foreach (int y in events)
            {
                events[y] = eventId;
            }
            //stored proc to call database
            SybaseAccess.GetPlans(aseConn, testId, eventId);
        }
    }

错误消息可能就是出了什么问题:您正试图以不存在的索引访问数组

假设您已经解析了行中的数字1,2,3,4,5。这些数字存储在
tests
数组中,它有五个元素。在这种情况下,前四个数组访问将工作,但第五个将失败,因为数组的索引为0,1,2,3,4

您应该检查
测试中的数字是否没有超过数组的长度


而且我不明白你到底在干什么。您正在分析一行中的数字数组?然后你用testId替换这些数字来覆盖它们?这相当复杂。如果你想要一个数组,其中包含n倍的testId作为一个整数,为什么不直接创建它?

@Uwe Keim Hi,我编辑了这个问题,你能不能请你放开这个问题。@juharr Hi,我编辑了这个问题,你能不能放开这个问题。你希望
tests[x]=testId要做什么?