【发布时间】:2015-12-16 16:01:02
【问题描述】:
我有一个要求,我在 bytearray 中有大量数据。我想选择 39998 数据并跳过 39999,40000.40001,40002 索引,然后在此 39998 数据之后再次选择并跳过 39999,40000.40001,40002。
所以我的要求是 我需要大小为 39998*12=479976 的总字节数组
我已经尝试过这个解决方案
for (int i = 1; i < 13; i++)
{
list.RemoveAt(39999 * i);
list.RemoveAt((39999 * i) + 1);
list.RemoveAt((39999 * i) + 2);
list.RemoveAt((39999 * i) + 3);
}
但它改变了列表。
我需要选择从 1 到 39998 的数据跳过 4 个字节,然后选择 39998 并跳过 4 个字节,依此类推,最多 12 次。然后重新组合字节数组。实际上,如果我们使用列表,它会在第二次移动索引它会出现问题(删除其他索引)。所以如果你有其他建议,请告诉我
【问题讨论】:
-
我认为您希望从 13 开始
i并递减到 1,这样您的偏移量就不会受到先前循环中删除的影响。 -
我有一个要求,我需要选择从 1 到 39998 的数据跳过 4 个字节,然后选择 39998 并跳过 4 个字节,依此类推,最多 12 次。然后重新组合字节数组。实际上,如果我们使用列表,它会在第二次移动索引它会出现问题(删除其他索引)。所以如果你有其他建议,请告诉我
-
我认为你可以只减去 4 倍
i - 1来解释之前循环中删除的项目。
标签: c# arrays arraylist bytearray copyonwritearraylist