第17节、C#数组

1、C#数组(Array)

简述:数组是一个存储相同类型有序集合,数组是用来存储数据的集合,数组中的每项都按索引进行访问,索引是要给数字,用于设置对象子数组中的存储位置。

1.1声明数组语法:

datatype[] arrayName;
  • datatype用于指定被存储在数组中的元素类型。
  • [ ]指定数组的秩(维度),秩指定数组的大小。
  • arrayName 指定数组的名称。

例如:

double[] arrayStrudent;

  1.2初始化数组

声明一个数组不会在内存中初始化数组,初始化数组变量是,你可以赋值给数组,数组是一个引用类型,所以需要使用New关键字创建数组实例。

例如:

int[] numberArr=new int[5];
string[] strArr=new String[5];

  1.3赋值给数组

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    public class 数组
    {
        public static void Main(string[] age)
        {
        }
        public void Get()
        {
            #region 赋值给数组

            //1、可以通过使用索引号赋值给单独数组元素,示例:
            int[] numberArr = new int[5];//固定数组长度的
            numberArr[0] = 100;

            //2、可以在声明数组的同时给数组赋值,示例:
            int[] numberArr2 = { 10, 20, 30, 40, 50 };//初始化值长度解决数组长度

            //3、可以创建并初始化一个数组,示例:
            int[] numberArr3 = new int[5] { 11,12,13,14,15};//什么固定长度数组并且初始化赋值了

            //4、以上情况,可以省略数组的大小,示例:
            int[] numberArr4 = new int[] { 11, 22, 33, 44, 55 };//声明的数组可以省略固定长度,后面初始化的值决定数组大小

            #endregion
        }
    }
}

1.4访问数组元素

元素是通过带索引数组名称来访问的

 注意一、索引超出数组界限错误

由于数组下标从0开始,所以访问索引最大是数组最大长度-1

2、多维数组

简述:数组中的每个数据都由多个元素组成,这样的数组称为多维数组。

2.1多维数组定义

数据类型[,,...]数组名;

//创建多维数组初始化
数组类型[,,...]数组名=new 数据类型[m,n,..]{,,...},{,,...};

  示例:同学的英语、数学、语文成绩分数

#region 多维数组 要求:输出学生的数学、语文、英语成绩
            //定义数组
            int[,] student = {{11,22,33},{22,22,33} };
            for (int i = 1; i <= student.GetLength(0);i++ )
            {
                Console.WriteLine("第{0}位同学数学、语文、英文成绩分别如下:",i);
                for (int j = 1; j <= student.GetLength(1);j++ )
                {
                    Console.WriteLine(student[i-1,j-1]);
                }
            }

            #endregion
View Code

3、锯齿型数组

也称为数组中的数组

数组类型[][] 数组名=new 数组类型[数组长度][]

示例: 输渣男们的女朋友名字

 完整代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ConsoleApplication1
 8 {
 9     public class 数组
10     {
11 
12         public static void Main(string[] age)
13         {
14             数组 d = new 数组();
15             d.Get();
16             Console.ReadLine();
17         }
18 
19 
20         public void Get()
21         {
22             #region 声明数组+赋值+输出
23             ////声明
24             //int[] intArr = new int[10];
25             ////索引初始化
26             //for (int i = 0; i < intArr.Length; i++)
27             //{
28             //    intArr[i] = i *2;
29             //}
30 
31             ////通过索引位置访问数组元素值,示例:范围第二个元素值
32             //Console.WriteLine("通过索引访问数组第二个值{0}",intArr[1]);
33 
34             ////通过循环遍历数组所有元素
35             //Console.WriteLine("遍历数组开始:");
36             //for (int k = 0; k < intArr.Length;k++ )
37             //{
38             //    Console.WriteLine("intArr数组第【{0}】个元素的值是【{1}】", k + 1, intArr[k]);
39             //}
40 
41             #endregion
42 
43             #region 赋值给数组
44 
45             //1、可以通过使用索引号赋值给单独数组元素,示例:
46             int[] numberArr = new int[5];//固定数组长度的
47             numberArr[0] = 100;
48 
49             //2、可以在声明数组的同时给数组赋值,示例:
50             int[] numberArr2 = { 10, 20, 30, 40, 50 };//初始化值长度解决数组长度
51 
52             //3、可以创建并初始化一个数组,示例:
53             int[] numberArr3 = new int[5] { 11,12,13,14,15};//什么固定长度数组并且初始化赋值了
54 
55             //4、以上情况,可以省略数组的大小,示例:
56             int[] numberArr4 = new int[] { 11, 22, 33, 44, 55 };//声明的数组可以省略固定长度,后面初始化的值决定数组大小
57 
58             #endregion
59 
60             #region 多维数组 要求:输出学生的数学、语文、英语成绩
61             ////定义数组
62             //int[,] student = {{11,22,33},{22,22,33} };
63             //for (int i = 1; i <= student.GetLength(0);i++ )
64             //{
65             //    Console.WriteLine("第{0}位同学数学、语文、英文成绩分别如下:",i);
66             //    for (int j = 1; j <= student.GetLength(1);j++ )
67             //    {
68             //        Console.WriteLine(student[i-1,j-1]);
69             //    }
70             //}
71 
72             #endregion
73 
74             #region 要求:输渣男们的女朋友名字
75             //声明二维数组并且初始化赋值
76             string[][] SG_NPY = { new string[] { "小美", "小爱", "小妞" }, 
77                                   new string[] { "小甜", "小妹" }, 
78                                   new string[] { "笑笑", "幽幽", "优优", "小熊" },
79                                   new string[] { "小爱", "小美", "小熊" } };
80 
81             //循环二维数组
82             for (int i = 0; i < SG_NPY.Length;i++ )
83             {
84                 Console.Write("第{0}位渣男的女朋友名字:", i);
85                 string strName = string.Empty;
86                 for (int j = 0; j < SG_NPY[i].Length;j++ )
87                 {
88                     if (string.IsNullOrEmpty(strName))
89                         strName = SG_NPY[i][j];
90                     else
91                         strName +=""+SG_NPY[i][j];
92                 }
93                 Console.Write(strName);
94                 Console.WriteLine();
95             }
96             #endregion
97         }
98     }
99 }
View Code

 4、数组常用的方法

方法 描述
Clone 创建数组的浅表副本
Copy 将某数组内的元素复制到另外一个数组中
CopyTo 将当前一维数组的元素复制到另外一个数组中
GetLength 设置数组指定维度的元素
IndexOf 返回一维获取数组或部分数组中某个匹配项的索引
LastIndexOf 返回数组中某匹配项的最后一个索引
原文地址:https://www.cnblogs.com/liuzz/p/14533009.html