所以我有一个包含9个元素的List,但是当我尝试在" right"中添加数组[4]元素时,我得到了范围错误的索引。名单。有人能告诉我什么是错的吗?
public static int dosomething(ref List<int> array, int n)
{
List<int> left = new List<int>();
List<int> right = new List<int>();
for (int i = 0; i < n; i++)
{
if (i < n/2)
{
left.Add(array[i]);
Console.WriteLine("Left[{0}] = {1}", i, left[i]);
}
else
{
Console.WriteLine("i = {0}", i);
right.Add(array[i]);
Console.WriteLine("Right[{0}] = {1}", i, right[i]);
}
}
}
答案 0 :(得分:1)
您为left
和right
使用了错误的索引。由于您在整个数组中进行迭代,并且在某些时间添加到left
并在其余时间添加right
,因此您无法使用i
作为索引进入那些检索价值的人。该错误实际上发生在您的Console.WriteLine()
来电中。
相反,您可以使用:
left[left.Count - 1];
或:
right[right.Count - 1];