重新调整数组长度

public static Array Redim(Array origArray, Int32 desizedSize)
        {
            //确认每个元素的类型
            Type t = origArray.GetType().GetElementType();
            //创建一个含有期望元素个数的新数组
            //新数组的类型必须匹配数组的类型
            Array newArray = Array.CreateInstance(t,desizedSize);
            //将原数组中的元素拷贝到新数组中。
            Array.Copy(origArray,0,newArray,0,Math.Min(origArray.Length,desizedSize));
            //返回新数组
            return newArray;
        }
        public static void memset(byte[] buf, byte val, int size)
        {
            int i;
            for (i = 0; i < size; i++)
                buf[i] = val;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            byte[] arr = new byte[65536];

            memset(arr, 0, 65536);
            //string  [] arr = new string[] {"1","2","3"};
            foreach(byte x in arr)
            {
                richTextBox1.AppendText(x + " ");
            }
            richTextBox1.AppendText("-----------------------------------"+"\n");
            //重新调整数组长度使其包含5个元素
            arr = (byte[])Redim(arr, 5);
            foreach (byte x in arr)
            {
                richTextBox1.AppendText(x + " ");
            }
            richTextBox1.AppendText("-----------------------------------" + "\n");
            //arr = (Int32[])Redim(arr, 10);
            //foreach (Int32 x in arr)
            //{
            //    richTextBox1.AppendText(x + " ");
            //}
        }

posted @ 2010-05-19 22:23  vhtt  阅读(339)  评论(0)    收藏  举报