频道栏目
首页 > 资讯 > C# > 正文

C#3.0学习笔记(6)详谈数组

11-11-01        来源:[db:作者]  
收藏   我要投稿

 

1,  数组的定义及重要细节?

  定义:数组是由一个变量名称表示的一组同类型的数据元素,每个元素通过变量名称和一个或多个方括号的索引名称来访问。

  注意:1> 数组一旦被创建,大小就固定了。C#不支持动态数组。

          2> 数组索引号从0开始。也就是说如果维度长度是n,索引号范围是从0到n-1。

           3> 数组属于引用类型,即引用在栈上或堆上,但是数组对象本身总是在堆上。

2,  数组的分类?

  1>     一维数组

  2>     矩形数组(即某个维度的所有子数组有相同长度)

  3>     交错数组s(即可以有不同长度的子数组)

3,  数组的声明,初始化和遍历数组元素?

  一维数组:

namespace array1

{

    class Program

    {

        static void Main(string[] args)

        {

            //int[] arr1;//声明数组

            //arr1 = new int[] { 10, 20, 30, 40, 50 };//初始化数组

            int[] arr1 = new int[] { 10, 20, 30, 40, 50 };//声明和初始化可以一步完成。等价于:int[] arr1 = { 10, 20, 30, 40, 50 };//快捷语法

            //var arr1 = new[] {10, 20, 30, 40, 50 }; //隐式类型数组。

 

            //遍历数组

            //方法一:使用for循环:

            for (int i = 0; i < arr1.Length; i++)

            {

                Console.WriteLine("数组元素{0}的值为:{1}",i,arr1[i]);

            }

            //方法二:使用foreach语句:

            //foreach (int item in arr1)//迭代变量item表示数组中的每一个元素。

            //{

            //    Console.WriteLine("元素的值为:{0}", item);

            //}

            Console.ReadKey();

        }

    }

}

  程序输出结果为:

 

 

  二维数组(矩形数组):

namespace array2

{

    class Program

    {

        static void Main(string[] args)

        {

            int[,] arr2 = new int[,] { {0,1,2},{10,11,12}};//声明和初始化二维数组。

            //遍历数组

            //方法一:使用for循环:

            //for (int i = 0; i < 2; i++)

            //{

            //    for (int j = 0; j < 3; j++)

            //    {

            //        Console.WriteLine("元素[{0},{1}]的值为:{2}",i,j,arr2[i,j]);

            //    }

            //}

            //方法二:使用foreach语句:

            foreach (int item in arr2) //对于多维数组,元素的处理次序是最右边的索引号最先递增的,当索引从0到长度减1时,下一个左边的索引被递增,右边的索引被重置为0.

            {

                Console.WriteLine("元素的值分别为:{0}",item);

            }

            Console.ReadKey();

        }

    }

}

  程序输出结果为:

 

 

         交错数组:

namespace arr3

{

    class Program

    {

        static void Main(string[] args)

        {

            int[][] arr3 = new int[2][];

            /*交错数组的实例化过程如下:

             首先,实例化顶层数组。

             其次,分别实例化每一个子数组,把新建数组的引用赋值给包含它们的数组的合适元素

             */

            arr3[0] = new int[] { 10,11};

            arr3[1] = new int[] { 12,13,14};

            //遍历数组:

            foreach (int[] array in arr3)

            {

                Console.WriteLine("Starting new array");

                foreach (int item in array)

                {

                    Console.WriteLine("数组的元素分别为:{0}",item);

                }

            }

            Console.ReadKey();

        }

    }

}

   程序输出结果为:

 

 

4, 数组的一些重要属性和方法总结?

namespace array4

{

    class Program

    {

        static void Main(string[] args)

        {

            int[] arr4 = new int[] { 15,20,5,25,10};

            PrintArray(arr4);

            Console.WriteLine();//换行

 

            Array.Sort(arr4);//方法Sort,排序,默认为升序

            PrintArray(arr4);

            Console.WriteLine();

 

            Array.Reverse(arr4);//方法Reverse,反转

            PrintArray(arr4);

            Console.WriteLine();

            Console.WriteLine();

 

            Console.WriteLine("维度为:{0},长度为:{1}", arr4.Rank, arr4.Length);//属性Rank表示数组维度,属性Length表示数组长度。

            Console.WriteLine("GetLength(0)={0}", arr4.GetLength(0));//方法GetLength()表示返回数组中指定维度的长度。

            Console.WriteLine("GetType()={0}", arr4.GetType());//方法GetType()表示返回数组类型。

            Console.ReadKey();

 

        }

        protected static void PrintArray(int[] a)

        {

            foreach (int item in a)

            {

                Console.Write("{0}", item);

                Console.Write("");//在每个数组元素后面加一空格。

            }

        }

    }

}

   程序输出结果为:

 

 

哎,很晚了,要睡觉了,先总结到这儿吧,不足的部分请大家补充补充啊!

 



作者 永远的麦子。
相关TAG标签
上一篇:C#3.0学习笔记(7)浅谈委托
下一篇:C#3.0学习笔记(5)浅谈枚举
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站