c#中对数组的理解(详解)

一、一维数组

1.数组的定义方式

基本定义(1)整形数组 int [] +数组名 eg:int [] myarr

(2)双精度数组 double []+数组名 eg:double [] b //双精度数组b

(3)字符串数组 string []+数组名 eg: string [] c //字符串数组c

注意;创建的只是数组的定义还要对数组进行初始化,初始化分为静态和动态初始化

先来说说动态初始化吧

你要new一个,比如;你没有女朋友,你得自己去new一个,具体的方法是int [] myarr=new int[5].这样创建的是一个初始值全为0的动态数组,如果你要之前就具体赋值,就如int myarr= new int[5]{1,2,3,4,5},这一点就得小心了,不能多也不能少要不然就会报错。或者 int[] b=new int[]{1,2,3,4,5,6,7,8,9,10};把你都需要的元素全部列出来,就不用对[]中赋值.

注意:        

 ☆ 数组如果给定初始值,则不允许“数组长度”为变量,即使变量先赋值也不行,

例如:             int n = 5;             int[] myarr = new int[n] { 1, 2, 3, 4, 5 }; //错误        

☆ 数组如果没有给定初始值,“数组长度”可以是已初始化的变量,

例如:             int n = 5;             int[] myarr = new int[n];    //正确,指定数组长度为n          

☆ 如果给出“数组长度”,则初始值的个数应与“数组长度”相等,否则出错,

如:          int[] mya = new int[2] {1,2};   //正确      

                int[] mya = new int[2] {1,2,3};      //错误      

                int[] mya = new int[2] {1};   //错误

再来说说静态初始化吧

直接在定义后面加上{   },里面为具体的元素,但是绝对不能将定义与分配空间的过程分开。

2.对数组进行访问

主流方法有三种,如下

static void Main(string[] args)
        {
            int[] myarr = new int[5];
            for(int i=1;i<=5;i++)
            {
                Console.WriteLine(myarr[i-1]);
            }
            Console.ReadLine();
            for(int i=0;i<myarr.Length;i++)
            {
                Console.WriteLine(myarr[i]);
            }
            Console.ReadLine();
            foreach(int i in myarr)
            {
                Console.WriteLine(i);
            }
            Console.ReadLine();
        }

输出结果为(因为没有进行初始化所以结果为0)

 二、二维数组

语法格式如下:          

 数组类型[,]  数组名;       例如:    

int[,] a1,a2;     //定义整型二维数组a1、a2    

double[,] b;      //定义双精度二维数组b    

string[,] c;      //定义字符串二维数组c

1、二维数组的动态初始化

(1)不给定初始值的情况,各元素取默认值,例如:

int[,] x = new int[2,3];   //该数组各数组元素均取默认值0。

(2)给定初始值的情况,一般形式为:

int[,] x = new int[2,3]{{1,2,3},{4,5,6}}; 若初始值个数与对应的数组长度相等,由于后面的大括号中已列出了数组中的全部元素,因此可省略数组长度,例如:

int[,] x = new int[,]{{1,2,3},{4,5,6}}; //此时不允许数组长度为变量 注,

错误情况:     int[,] x = new int[,] { { 1, 2 }, { 4, 5, 6 } };   //错误    

                     int[,] x = new int[2,3] { { 1, 2 }, { 4, 5, 6 } };  //错误

2.对二维数组的访问

和C语言一样,要用到两次循环

static void Main(string[] args)
        {
            int[,] myarr = new int[2, 3] ;
            for (int i=0;i<2;i++)
            {
                for(int j=0;j<3;j++)
                {
                    Console.Write("{0}",myarr[i,j]);
                }
                Console.WriteLine();
            }
            Console.ReadLine();
        }

注意内循环必须是console.wtite不然输不出二维数组

三、Array类函数调用

1.Array.sort(a)是对数组a进行排序。

2、Array.BinarySearch(Array,item):在整个一维排序数组Array中搜索特定元素item。

3.Array.Copy(Array1,Array2,n):从第一个元素开始复制Array1中的一系列元素,将它们粘贴到Array2中(从第一个元素开始),共复制n个元素。

4.Array. Reverse(Array):反转整个一维Array中元素的顺序。

注意:此笔记只记录了一维与二维数组的输入与输出。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值