您的位置:首页 > 编程语言 > C#

C#动态数组

2015-11-26 22:04 525 查看
//谈不上原创,初学C#,参考教程自己修改后写的测试代码

class Program

    {

        class CArray

        {

            private int[] arr; //数组

            private int upper; //上限

            private int numElements; //数量

            public CArray(int size)

            {

                arr = new int[size];

                upper = size;

                numElements = 0; 

            }

            /// <summary>

            /// Append动态添加数组元素

            /// </summary>

            /// <param name="item">元素值</param>

            public void Append(int item)

            {

                if (numElements < upper)

                {

                    arr[numElements] = item;

                    numElements++;

                }

                else

                {

                    int[] newArr= new int[arr.Length * 2]; //创建新数组,每次扩容,参照前次的2倍

                    arr.CopyTo(newArr, 0);

                    arr = newArr; //引用新地址

                    upper = arr.Length;

                    arr[numElements] = item;

                    numElements++;

                }

            }

            public void ShowArray()

            {

                for (int i=0; i< numElements; i++)

                {

                    Console.Write(arr[i] + " ");

                }

                Console.WriteLine();

            }

            

        }

        static void Main(string[] args)

        {

            CArray nums = new CArray(10); //创建有10个元素空间的数组

            Random rnd = new Random(100); 

            for (int i = 0; i < 20; i++) //随机添加20个元素值,数组动态扩容

                nums.Append(rnd.Next(0, 100)); 

            nums.ShowArray();

            Console.ReadKey();

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: