C# 基础Array

一、Array的作用

  连续定义多个相同类型的变量,比如我定义1000个学生的学生年龄,int[] age = new int[1000];不需要慢慢的一个一个变量的定义,数组是不是很方便。

需要注意的:1)Array是引用类型。引用类型是传递栈中的地址。2)数组都是由连续的内存位置组成的。

二、Array定义与赋值

1)先定义再赋值比如:

 1             //定义100个学生的成绩
 2             //第一种定义并初始化方式
 3             int[] studentSorce = new int[100];
 4             studentSorce[0] = 78;
 5             studentSorce[1] = 95;
 6             //第二种定义并初始化方式
 7             int[] studentSorce02 = new int[5]{78,95,84,76,59};
 8             //第三种定义并初始化方式
 9             int[] studentSorce03 = new int[] { 78, 95, 84, 76, 59 };
10             //第四种定义并初始化方式
11             int[] studentSorce04 = { 78, 95, 84, 76, 59 };
12             //二维定义方式
13             int[,] arr = new int[3, 4];
14             //二维定义并赋值,3行4列
15             int[,] arr02 = new int[3, 4] { { 75,96,83,65 }, { 78, 95, 84, 76 },{86,66,73,77} };

2)二维数组遍历

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace ArrayTest
 8 {
 9
10     class Program
11     {
12         public static int[,] array2D;        //定义二维数组,没赋值数组长度
13
14         /// <summary>
15         /// 随机生成二维数组
16         /// </summary>
17         /// <param name="rows">一维(行)</param>
18         /// <param name="columns">二维(列)</param>
19         public static void RaArray2D(int rows, int columns)
20         {
21             Random ra = new Random();
22             array2D = new int[rows, columns];
23             for (int i = 0; i < array2D.GetLength(0); i++)
24             {
25                 for (int j = 0; j < array2D.GetLength(1); j++)
26                 {
27                     array2D[i, j] = ra.Next(10, 101); //范围10-100的随机数
28                 }
29             }
30         }
31         /// <summary>
32         /// 遍历二维数组
33         /// </summary>
34         /// <param name="arr2D">二维数组</param>
35         public static void EachArray2D(int[,] arr2D)
36         {
37             for (int i = 0; i < arr2D.GetLength(0); i++)
38             {
39                 for (int j = 0; j < arr2D.GetLength(1); j++)
40                 {
41                     Console.Write(arr2D[i, j].ToString().PadRight(4, ‘\u0000‘));
42                 }
43                 Console.WriteLine();
44             }
45         }
46
47         static void Main(string[] args)
48         {
49             RaArray2D(5, 10);
50             EachArray2D(array2D);
51
52             Console.WriteLine(array2D.Length);//显示二维数组总长度.
53             Console.WriteLine(array2D.Rank);    //数组维度
54
55             Console.ReadKey();
56
57         }
58
59     }
60 }

3)数组初始化的值,代码 int[] studentSorce = new int[5]; 我们进行两步创建。

            int[] x;            //定义int[]的数组,没有赋值.
            x = new int[5];     //赋值后x[0]...x[4]初值0

这样我们就可以在类中定义数组,然后在方法中赋值。如下

public static int[] newArr;   //在类中定义,然后在方法中赋值。估计可行。

三、Array常用方法

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace ArrayTest
 8 {
 9
10     class Program
11     {
12         public static int[] array1D;        //声明array1D变量,该变量的类型为int[]
13         /// <summary>
14         /// 随机生成一维数组
15         /// </summary>
16         /// <param name="number">表示数组的长度</param>
17         public static void RaArray(int number)
18         {
19             array1D = new int[number];      //创建了一个数组,将数组的地址赋值给array1D
20             Random ra = new Random();
21             for (int i = 0; i < array1D.Length; i++)
22             {
23                 array1D[i] = ra.Next(30, 101); //随机范围30-100
24             }
25         }
26         /// <summary>
27         /// 遍历数组方法
28         /// </summary>
29         public static void EachArray()
30         {
31             for (int i = 0; i < array1D.Length; i++)
32             {
33                 Console.Write(array1D[i].ToString().PadRight(4, ‘\u0000‘));
34             }
35         }
36
37
38         static void Main(string[] args)
39         {
40             RaArray(10);    //生成随机数组方法
41             EachArray();    //遍历数组的方法
42             //下面介绍一些数组的方法
43             Console.WriteLine();    //换行
44             Array.Sort(array1D);    //排序由小到大
45             EachArray();
46             Console.WriteLine();    //换行
47             Array.Reverse(array1D); //数组元素反转
48             EachArray();
49             Console.WriteLine();    //换行
50             int max = array1D.Max();
51             int min = array1D.Min();
52             int sum = array1D.Sum();
53             double avg = array1D.Average();
54             Console.WriteLine("array1D数组的最大值:{0},最小值:{1},和:{2},平均值:{3}", max, min, sum, avg);
55             Console.WriteLine();    //换行
56             Console.WriteLine("输入要查询的数字");
57             int chaXun = int.Parse(Console.ReadLine());
58             bool isContains = array1D.Contains(chaXun); //查询数组是否包含指定数,返回bool
59             Console.WriteLine(isContains);
60             Console.WriteLine();
61             int[] newArray1d = new int[array1D.Length];
62             array1D.CopyTo(newArray1d, 0); //将array1D的所有元素复制给newArray1D
63             for (int i = 0; i < newArray1d.Length; i++)
64             {
65                 Console.Write(newArray1d[i].ToString().PadRight(4, ‘\u0000‘));
66             }
67             Console.WriteLine("输入数字,检索第一次出现的索引值");
68             int number = int.Parse(Console.ReadLine());
69             int firstIndex = Array.IndexOf(array1D, number); //搜索array1D中第一次出现指定值的索引值
70             int laseIndex = Array.LastIndexOf(array1D, number); //最后一次出现的索引值.
71
72             Console.WriteLine("搜索第一次出现{0}位置索引号为:{1},最后一次出现的索引号为{2}", number, firstIndex, laseIndex);
73
74             Console.WriteLine(Array.Find(array1D, item => item > 5)); //数组中第一个大于5的数字
75             Console.WriteLine(Array.FindLast(array1D, items => items < 90)); //检索数组最后一个大于90的值并输出
76             foreach (int item in Array.FindAll(array1D,item=>item>50)) //遍历所有大于50的值
77             {
78                 Console.Write("大于50的有{0}", item);
79             }
80             Console.WriteLine(); //换行
81             //第一个大于50的索引值,和最后一个大于50的索引值
82             Console.WriteLine("第一个大于50的索引是:{0},最后大于50的是{1}", Array.FindIndex(array1D, item => item > 50), Array.FindLastIndex(array1D, item => item > 50));
83             Console.ReadKey();
84         }
85
86     }
87 }

四、交错数组

交错数组:每行元素个数不想等的二维数组。有时也称“数组的数组”定义、初始化、遍历如下代码:

 1             //交错数组,定义与初始化
 2             int[][] interleavedArray = new int[4][];
 3             interleavedArray[0] = new int[4] { 17, 14, 36, 43 };//第一行4个元素
 4             interleavedArray[1] = new int[] { 77, 34 };     //第二行2个元素
 5             interleavedArray[2] = new int[3] { 55, 76, 89 };
 6             interleavedArray[3] = new int[6] { 33, 23, 56, 75, 46, 52 };
 7             //遍历交错数组
 8             //先测试下交错数组1维长度(行)
 9             Console.WriteLine(interleavedArray.GetLength(0));   //第一种方法,获取第一维长度
10             Console.WriteLine(interleavedArray.Length);      //推荐使用,获取第一维长度.标准用法
11             Console.WriteLine(interleavedArray[0].Length); //(第一行有多少列)
12             Console.WriteLine(interleavedArray[1].Length); //第二行有多少列
13             //下面遍历的问题就容易了
14             Console.ForegroundColor = ConsoleColor.Cyan;
15
16             for (int i = 0; i < interleavedArray.Length; i++)   //行,一维
17             {
18                 for (int j = 0; j < interleavedArray[i].Length; j++)    //列,二维
19                 {
20                     Console.Write(interleavedArray[i][j].ToString().PadRight(4, ‘ ‘));
21                 }
22                 Console.WriteLine();
23             }

交错数组应用代码如下:

时间: 2024-10-28 14:41:50

C# 基础Array的相关文章

JS基础--Array

一.特点 数据类型的多变: 数组大小可动态调整: 有length属性,且length属性不是只读的,可以设置: 二.创建方法 使用Array构造函数: var arr=new Array(); var arr=new Array(20); var arr=new Array("arr1","arr2","arr3"); 数组字面量表示法 var arr=["arr1","arr2","arr3&q

golang基础--Array数组

基本特性 格式: var Name [n]<type>,n>0 如: var a [10]int 表示,定义一个长度为10,元素类型为int性的数组 数组长度: 长度(len)也是数组类型的一部分,因此具有不同长度的数组为不同的类型. 如var a [2]int != var a [2]int 注意区分指向数组的指针和指针数组 // 指向数组的指针:变量是指针 a :=[...]int[9:1] //顶一个变量a的数组(长度为100,第100个元素为1) var p *[...]int

JavaScript基础系列目录(2014.06.01~2014.06.08)

下列文章,转载请亲注明链接出处,谢谢! 链接地址: http://www.cnblogs.com/ttcc/tag/JavaScript%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%20%E6%80%BB%E7%BB%93/ 1. Javascript基础---语法(待完成) 2. JavaScript基础---数据类型(待完成) 3. JavaScript基础---Array数组(待完成) 4. JavaScript基础---正则表达式(待完成) 5. Jav

JQuery之操作array

1:split 函数将字符串按某个字符分割,将分割后的结果存入字符串数组中 function SplitUsersInformation(users) { var usersArray = users.split(';'); return usersArray;} 2:substr 函数切割目标字符串 currentStr = currentStr .substr(0, currentStr.length - 2); 3:push 方法向Array中添加一条记录 var totalUsers =

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

如何加速golang写业务的开发速度

如何加速golang写业务的开发速度 不要忌讳panic golang写业务代码经常会被吐槽,写业务太慢了,其中最大的吐槽点就是,处理各种error太麻烦了.一个项目中,会有30%或者更多的是在处理error. 对于golang的error这个事情,golang的官方也说的很详细,建议函数返回error,并且让上层调用处理. error和panic实际上就是以前写PHP业务的时候争论的使用errno还是exception的争论.实际上,后续在PHP世界里面,大家都倾向于会使用exception来

使用 arguments 对象

arguments 对象表示参数集合,它是一个伪类数组,拥有与数组相似的结构,可以通过数组下标的形式访问函数实参值,但是没有基础 Array 的原型方法. //函数没有定义形参,但是在函数体内通过 arguments 对象可以获取传递给该函数的每个实参值. function f () { //定义没有形参的函数 for(var i = 0; i < arguments.length; i++ ) { //循环读取函数的 arguments 对象 alert(arguments[i]); //显示

【Go入门教程2】内置基础类型(Boolean、数值、字符串、错误类型),分组,iota枚举,array(数值),slice(切片),map(字典),make/new操作,零值

这小节我们将要介绍如何定义变量.常量.Go内置类型以及Go程序设计中的一些技巧. 定义变量 Go语言里面定义变量有多种方式. 使用var关键字是Go最基本的定义变量方式,与C语言不同的是Go把变量类型放在变量名后面: // 定义一个名称为“variableName”,类型为"type"的变量 var variableName type 定义多个变量 // 定义三个类型都是“type”的变量 var vname1, vname2, vname3 type 定义变量并初始化值 // 初始化

javascript之Array基础篇

整理了 Array 中很基础的要掌握的知识点,希望可以帮助初学者,也希望自己以后多用多融会贯通. 创建数组 使用Array构造函数: var a=new Array();//创建一个空数组 var a=new Array(20);//创建给定数值的项数的数组 var a=new Array("a","b","c");//包含3个字符串值的数组 var a=Array();//可以省略new关键字 var a=Array(3); 给构造函数传递一个