旗下导航:搜·么
当前位置:网站首页 > .Net教程 > 正文

C#基础知识整顿:基础知识(14) 数组【C#.Net教程】,C#,基础知识整理,数组

作者:搜教程发布时间:2019-11-27分类:.Net教程浏览:77评论:0


导读:不管哪一种言语,一定会有鸠合的观点。而最简朴,最直观的鸠合应当就是数组了,数组是在内存中一连的一段空间。看看C#中数组的定义。1、int[]intArry;intAr...
不管哪一种言语,一定会有鸠合的观点。而最简朴,最直观的鸠合应当就是数组了,数组是在内存中一连的一段空间。看看C#中数组

的定义。
1、int[] intArry ;
intArry= new int[6];
这里声清楚明了一个int数组范例变量intArry,并保留一个具有6个单位的int数组对象;
int[,] intArry2 = new int[3, 4];
声明一个int二维数组范例变量,并初始化一个3行4列的数组对象;
int[][] intArry3 = new int[9][];
声明一个数组单位为int数组范例的数组变量,每一个数组元素是一个int数组范例的对象援用。
由于是面向对象言语,上面提到了援用和对象。实在:
1、.net Frameword数组不是一种纯真的数据结构,而是一个范例,叫数组范例;
2、.net Framework中的数组变量保留着援用到数组范例对象的援用,也就是说数组是一个对象。
一切.net Framework数组(int[],string[],object[])都是从Array继续的子类。平常不直接运用Array类,由于.net Framework下

的各种言语,固然也包括C#,将数组对象映照为各自的特别语法了,比方int[],string[]。
数组重要有两个各属性:索引和长度,也就是index和length,索援用于接见数组对象中的元素,长度也就是数组的长度。
看一段联络代码:

public class MyArray
    {
        /// <summary>
        /// 定义数组测试
        /// </summary>
        public void TestInt()
        {
            int[] intArry1 = null;

            intArry1 = new int[6];

            int[,] intArry2 = new int[3, 4];

            int[][] intArry3 = new int[9][];
        }
        
        /// <summary>
        /// 值范例数组转援用范例数组测试
        /// </summary>
        /// <param name="array"></param>
        /// <returns></returns>
        public static object[] Int32ToArrayOfObject(int[] array)
        {
            object[] objArray = new object[array.Length];

            for (int i = 0; i < array.Length; i++)
            {
                objArray[i] = array[i];
            }

            return objArray;
        }
        /// <summary>
        /// 数组的重要特征测试
        /// </summary>
        public static void MainTest()
        {
            //声明一个包括是个元素的字符串型数组
            string[] sArray = new string[10];
            //接见数组
            //赋值
            for (int i = 0; i < sArray.Length; i++)
            {
                sArray[i] = @"string" + i;
            }

            ConsoleToClientString(sArray);

            //另一种体式格局声明数组,所谓的罗列法
            sArray = new string[] { "TestString0", "TestString1", "TestString2" };

            ConsoleToClientString(sArray);

            //数组复制
            string[] newSArray = sArray.Clone() as string[];

            ConsoleToClientString(newSArray);

            //运用Array的CreateInstance要领声明10元素的整形数组
            int[] intArray = Array.CreateInstance(typeof(int), 10) as int[];

            for (int i = 0; i < intArray.Length; i++)
            {
                intArray[i] = i;
            }

            ConsoleToClientInt(intArray);

            //数组之间的复制,指定位置,指定长度
            int[] newIntArray = new int[20];

            Array.Copy(intArray, 3, newIntArray, 4, intArray.Length - 3);

            ConsoleToClientInt(newIntArray);

            object[] objArray = sArray;

            ConsoleToClientObject(objArray);

            objArray = Int32ToArrayOfObject(intArray);

            ConsoleToClientObject(objArray);

            //数组的数组
            int[][] intArrayArray = new int[9][];

            Console.WriteLine("数组长度:" + intArrayArray.Length);

            //赋值
            for (int i = 1; i < 10; i++)
            {
                intArrayArray[i - 1] = new int[i];

                for (int j = 1; j <= i; j++)
                {
                    intArrayArray[i - 1][j - 1] = i * j;
                }
            }

            ConsoleToClientArrayArrayInt(intArrayArray);
            
            //二维数组
            int[,] intArray2D = new int[9, 9];

            Console.WriteLine(string.Format("二维数组 长度:{0},维数:{1}*{2}", intArray2D.Length, 

intArray2D.GetLength(0), intArray2D.GetLength(1)));

            for (int i = 1; i < 10; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    intArray2D[i - 1, j - 1] = i * j;
                }
            }

            int count = 0;

            foreach (int item in intArray2D)
            {
                if (item > 0)
                {
                    Console.Write("{0,2}", item);
                }

                if (++count >= 9)
                {
                    Console.WriteLine();

                    count = 0;
                }
            }
        }

        static void ConsoleToClientArrayArrayInt(int[][] intArrayArray)
        {
            foreach (int[] item1 in intArrayArray)
            {
                foreach (int item2 in item1)
                {
                    Console.Write("{0,2}", item2);
                }

                Console.WriteLine();
            }

            Console.WriteLine();
        }

        static void ConsoleToClientString(string[] sArray)
        {
            foreach (string item in sArray)
            {
                Console.Write(item + @",");
            }

            Console.WriteLine();
        }

        static void ConsoleToClientInt(int[] intArray)
        {
            foreach (int item in intArray)
            {
                Console.Write(item + @",");
            }

            Console.WriteLine();
        }

        static void ConsoleToClientObject(object[] objArray)
        {
            foreach (object item in objArray)
            {
                Console.Write(item.ToString() + @",");
            }

            Console.WriteLine();
        }

    }

挪用

    class Program
    {
        static void Main(string[] args)
        {
            MyArray.MainTest();

            Console.ReadLine();
        }
    }


效果


由上能够晓得:
数组有援用范例数组和值范例数组,关于援用范例数组,元素用于保留对象的援用,初始化值为null;关于值范例数组,元素保留

对象的值,关于数字范例初始化值为0。
数组有维度,然则多维数组和数组的数组是差别的观点,intArrayArray和intArray2D是差别的。数组的数组示意一个m*n的行列式

,多维数组则是每一个元素都是一个数组对象的数组。
数组和其他鸠合类一样都是是完成了ICollection接口,都具有罗列和迭代功用。

以上就是C#基础知识整顿:基础知识(14) 数组的内容,更多相关内容请关注ki4网(www.ki4.cn)!

标签:C#基础知识整理数组


欢迎 发表评论: