Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对位数组使用CopyTo命令时出错_C#_Asp.net_Treeview_Bitarray - Fatal编程技术网

C# 对位数组使用CopyTo命令时出错

C# 对位数组使用CopyTo命令时出错,c#,asp.net,treeview,bitarray,C#,Asp.net,Treeview,Bitarray,初学者:以下是生成的错误: 目标阵列不够长。检查destinex和length以及数组的下限。 代码:C#,ASP.NET 环境:VS 2005 我所做的是使用位数组根据TreeView的特定条件翻转位。现在我正在遍历一个树视图,如果从一个子节点检查节点,我将翻转位数组中的索引。我正在遍历多个TreeView,因此我有多个位数组。一旦我填充了所有的位数组,我将把这些位转换成一个整数值(某种意义上的编码),并将它们放在一个int数组中。然后最终的目标是将整数值推送到数据库,但显然我做不到这一点。下

初学者:以下是生成的错误:

目标阵列不够长。检查destinex和length以及数组的下限。

代码:C#,ASP.NET

环境:VS 2005

我所做的是使用位数组根据TreeView的特定条件翻转位。现在我正在遍历一个树视图,如果从一个子节点检查节点,我将翻转位数组中的索引。我正在遍历多个TreeView,因此我有多个位数组。一旦我填充了所有的位数组,我将把这些位转换成一个整数值(某种意义上的编码),并将它们放在一个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);
        }
    }
位数组MTRTECH=新的位数组(8);
BitArray MTRRD=新的BitArray(200);
BitArray REVSE=新的BitArray(100);
比特数组ETXA=新的比特数组(100);
int[]转换=新的int[11];
父母子女检查(MTRTECHTreeView,MTRTECH);
MTRTECH.CopyTo(转换,7);
父母子女检查(MTRRDRTreeView,MTRRD);

MTRRD.CopyTo(转换,8) 源
位数组
MTRRD在内部存储为7个
Int32s的数组
,目标数组
转换
是11个
Int32s的数组
。执行复制时,指定索引为8,此索引是目标数组的索引,因此复制将溢出,因为您的指定长度不足以包含从索引8开始的所有7
Int32s

谢谢。头撞在墙上两个小时后,我贴了。。然后就在那篇文章之后发现我是个白痴。修好了。去删除它,我看到你回答了。