我有这段代码:
for (int z = 0; z < date1Index.Length; z++)
{
test[date1Index[z]] = datA_new[date2Index[z]];
}
我的问题:
我有四个数组:datE_old
和datA_old
的长度为840. datE_new
和datA_new
的长度为20.现在我遍历datE
数组并检查是否有日期序列相等,并将索引值存储到date1Index
(10个索引值(整数),从829到839)和date2Index
(也是从0到10的11个值)。所以在这个索引上日期是一样的。现在我将datA_old
数组复制到一个名为test的新数组中。我现在要做的是以下内容:我想要将索引829到839的test
数组中的值替换为索引0-9处datA_new
数组的值,但是我得到了OutOfBoundException
。有什么问题?
代码是我存储索引等:
test = datA_old;
for (int c = 0; c < datE_new.Length; c++)
{
for (int d = 0; d < datE_old.Length; d++)
{
if (datE_new[c] == datE_old[d])
{
s_dateold.Add(c);
s_datenew.Add(d);
}
}
}
date1Index = s_dateold.ToArray();
date2Index = s_datenew.ToArray();
答案 0 :(得分:0)
所以你想用值_data_new [0],_ data_new [1],...,_ data_new [9]替换test [829],test [830],....,test [839]的值。 ]
如果这正是你想要完成的,那么你应该像这样改变循环:
for(int z = 0; z < 10; z++)
{
test[829+z] = _data_new[z];
}
另请注意,从829到839的索引不是10个值而是11个,如果包含两个索引值,则不能将10个值(0-9)复制到11个位置(829-839)
答案 1 :(得分:0)
解决了它:行
test[date1Index[z]] = datA_new[date2Index[z]];
必须改为:
test[date2Index[z]] = datA_new[date1Index[z]];