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代码>要做什么?