Starters: генерируется ошибка:
Массив назначения был недостаточно длинным. Проверьте destIndex и длину, а также нижние границы массива.
Код: C #, ASP.NET
Конверт: VS 2005
То, что я делаю, использует BitArray, чтобы переворачивать биты на основе определенного состояния TreeView. Прямо сейчас я перебираю TreeView и, если узел проверяется от дочернего, я переворачиваю индекс в BitArray. У меня есть несколько TreeViews, которые я пересекаю, поэтому у меня есть несколько BitArrays. Как только я заполню все битовые массивы, я преобразую биты в целочисленное значение (в некотором смысле закодированное) и помещу их в массив int. Тогда конечная цель - отправить целочисленные значения в базу данных, но, очевидно, я не могу зайти так далеко. Пример кода приведен ниже:
BitArray MTRTECH = new BitArray(8);
BitArray MTRRD = new BitArray(200);
BitArray REVSE = new BitArray(100);
BitArray ETXA = new BitArray(100);
int[] conversion = new int[11];
ParentChildCheck(MTRTECHTreeView, MTRTECH);
MTRTECH.CopyTo(conversion, 7);
ParentChildCheck(MTRRDRTreeView, MTRRD);
MTRRD.CopyTo(conversion, 8); <================ Throws Error Here
ParentChildCheck(REVSECTreeView, REVSE);
REVSE.CopyTo(conversion, 9);
ParentChildCheck(EXTRATreeView, ETXA);
ETXA.CopyTo(conversion, 10);
protected void ParentChildCheck(TreeView parent, BitArray Changes)
{
TreeNode temp = new TreeNode();
for (int index = 0; index < parent.Nodes.Count; index++)
{
temp = parent.Nodes[index];
for (int index2 = 0; index2 < temp.ChildNodes.Count; index2++)
{
ChildCheck(temp.ChildNodes[index2],Changes,index2);
}
}
}
protected void ChildCheck(TreeNode node, BitArray Selection, int value)
{
message2 += node.Text;
Selection.Set(value, true);
counter++;
for (int index = 0; index < node.ChildNodes.Count; index++)
{
value++;
ChildCheck(node.ChildNodes[index],Selection,value);
}
}