赞
踩
相关:
List相关: https://blog.csdn.net/qq_42672770/article/details/107494677
Array与 List比较: https://blog.csdn.net/qq_42672770/article/details/108972239
一、数组
1、变量是程序运行是在内存中存储发生变化的容器;
2、变量可以存储单个数据,而数组可以存储多个变量,并且互不影响,和谐共处;
3、数组的特点:长度固定、类型相同;
4、数组用于存储长度固定,类型相同变量的容器
二、数组的分类:
一维数组、二维数组、多维数组、不规则数组
三、数组的应用:
创建、赋值、应用
四、声明数组:
- //定义一个已知长度为包含100个整数类型元素的一维数组
- int[] arr = new int[100];
- //定义一个未知长度,直接赋值的包含三个字符串的一维数组
- string[] name1 = new string[]{"张三",“李四”,“王五”}
数组初始化的几种方式 :
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace OneArray
- {
- class Program
- {
- static void Main(string[] args) //数组初始化的几种方式,注意赋值利用 {} 实现
- {
- int[] arrOld; //定义一个包含整型元素的空数组
- arrOld=new int[5]{ 30, 32, 40, 25, 35 }; //给这个数组初始化,新建一个包含5个整型元素的数组
- int[] arrOld1 = {30,20,212 };
- int[] arrOld2 = new int[4] { 1, 2, 3, 4 };
- int[] testArray=new int[10];
- for (int i = 0; i < 10; i++)
- {
- testArray[i] = i * 3; //对数组赋值前需要初始化数组长度
- }
- Console.WriteLine("员工年龄:");
- foreach (int n in arrOld) //使用foreach语句循环遍历一维数组中的元素
- {
- Console.WriteLine("{0}", n + "岁 "); //输出数组中的元素
- }
- Console.ReadLine();
- }
- }
- }
五、C#多维数组
1、C#支持多维数组。多维数组又称为矩阵数组。
2、声明一个string变量的二维数组
string [,] names;
3、声明一个int变量的三维数组:
int [ , , ] m;
4、二维数组
多维数组最简单的形式就是二维数组。一个二维数组,在本质上,是一个一维数组的列表。一个二维数组可以被认为是一个带有X
行和Y列的表格。下面是一个二维数组,包含3行4列:
Column0 Column1 Column2 Column3
a[0][0] | a[0][1] | a[0][2] | a[0][3] |
a[1][0] | a[1][1] | a[1][2] | a[1][3] |
a[2][0] | a[2][1] | a[2][2] | a[2][3] |
因此,数组中的每个元素是使用形式为a[i][j]的元素名称来标识的,其中a是数组的名称,i和j是唯一标识a中每个元素的下标。
5、初始化二维数组
多维数组可以通过在括号内为每行指定值来进行初始化。下面是一个带有3行4列的数组:
- int [,] a = new int [3,4]{
- {0,1,2,3}, /*初始化索引号为0的行*/
- {4,5,6,7}, /*初始化索引号为1的行*/
- {8,9,10,11}}; /*初始化索引号为2的行*/
6、访问二维数组元素
二位数组中的元素是通过使用下标(即数组的行索引和列索引)来访问。例如:
int val = a[2,3];
上面的语句将获取数组中第三行第四个元素。
下面是使用循环来处理二维数组:
using System; namespace ArrayAppLication { Class MyArray { static void Main(string[] args) { /*一个带有5行2列的数组*/ int[,] a = new int[5,2]{{0,0},{1,2},{2,4},{3,6},{4,8}}; int i,j; //定义两个循环变量 /*输出数组中每个元素的值*/ for(i=0;i<5;i++) { for(j=0;j<2;j++) { Console.WriteLine("a[{0},{1}] = {2}",i,j,a[i,j]); } } Console.ReadKey(); } } }
7、C#交错数组
交错数组是数组的数组。你可以声明一个带有int值得交错数组 Scores,如下所示:
int [][] scores;
声明一个数组不会在内存中创建数组。创建上面得数组:
int [][] scores = new int[5][];
for(int i =0; i < scores.Length; i++)
{
scores[i] = new int[i+2];
}
你可以初始化一个交错数组,如下所示:
int [][] scores = new int[2][]{new int[]{92,93,94},new int []{85,66,84,88}};\
其中,scores是一个由两个整形数组组成得数组——scores[0]是一个带有3个整数得数组,scores[1]是一个带有4个正数得数组
8、C#Array类
Array类是C#中所有得数组得基类,它是在System命名空间中定义。
Array类提供了各种用于数组得属性和方法。
Ayyay类的属性:
IsFixedSize:获取一个值。该值指示数组是否带有固定大小。
IsReadOnly:获取一个值,该值指示数组是否只读;
Length:获取一个32位整数,该值表示所有维度的数组中的元素总数;
LongLength:获取一个64位整数,该值表示所有维度的数组中的元素整数;
Rank:获取数组的秩(维度);
Array类的方法:
Clear:根据元素的类型,设置数组中某个范围的元素为0、为false或者为null;
Copy(Array,Array,Int32):从数组的第一个元素开始复制某个范围的元素到另一个数组的第一个元素位置。
长度由一个32位整数指定;
CopyTo(Array,Int32):从当前的一维数组中复制所有的元素到一个指定的一维数组的指定索引位置。索引由
一个32位整数指定;
GetLength:获取一个32位整数,该值表示指定维度的数组中的元素整数;
GetLongLength:获取一个64位整数,该值表示指定维度的数组中的元素总数;
GetLowerBound:获取数组中指定维度的下界;
GetType:获取当前实例的类型。从对象(Object)继承;
GetUpperBound:获取数组中指定维度的上界;
GetValue(Int32): 获取一维数组中指定位置的值。索引由一个32位整数指定;
IndexOf(Array,Object): 搜索指定的对象,返回整个一维数组中第一次出现的索引;
Reverse(Array): 逆转整个一维数组中元素的顺序;
SetValue(Object,Int32):给一维数组中指定位置的元素设置值。索引由一个32位整数指定。
Sort(Array):使用数组的每个元素的IcomOarable实现来排序整个一维数组中的元素;
ToString:返回一个表示当前对象的字符串。从对象(Object)继承
根据元素查找索引位置:
Array.IndexOf (数组, 某一元素) 例 :
int x = Array.IndexOf(myArray,myList[i]);
查找一个列表某个元素在另一个数组中相同元素的位置索引。
Array.FindIndex(数组,某个元素)
简单的方法直接使用Array类的Linq扩展Array.FindIndex,例:
int keyIndex = Array.FindIndex(words, w => w.Contains("abc"));
或者使用下面Linq方法,不过这种方法如果不存在会抛Exception:
- var keyIndex = words.Select((v, i) => new { Word = v, Key = i })
- .FirstOrDefault(s => s.Word.Contains("abc"))
- .Key;
list.index(某个元素) 例:
p=list.index(value)
p是返回查到找元素value的索引位置
Array类的方法的用法:
- using System;
- namespace ArrayApplication
- {
- class MyArray
- {
- static void Main(string[] args)
- {
- int [] n = new int[10]; // 声明: n 是一个带有 10 个整数的数组
- int i,j;
-
- for ( i = 0; i < 10; i++ ) // 赋值: 初始化数组 n 中的元素
- {
- n[ i ] = i + 100;
- }
-
- for (j = 0; j < 10; j++ ) // 访问: 输出每个数组元素的值
- {
- Console.WriteLine("Element[{0}] = {1}", j, n[j]);
- }
- Console.ReadKey();
- }
- }
- }
输出结果:
- Element[0] = 100
- Element[1] = 101
- Element[2] = 102
- Element[3] = 103
- Element[4] = 104
- Element[5] = 105
- Element[6] = 106
- Element[7] = 107
- Element[8] = 108
- Element[9] = 109
二维数组:
- int [,] a = new int [3,4] // 声明一个3行4列的二维数组
- {
- {0, 1, 2, 3} , /* 初始化索引号为 0 的行 */
- {4, 5, 6, 7} , /* 初始化索引号为 1 的行 */
- {8, 9, 10, 11} /* 初始化索引号为 2 的行 */
- };
- using System;
-
- namespace ArrayApplication
- {
- class MyArray
- {
- static void Main(string[] args)
- {
- /* 声明: 一个带有 5 行 2 列的数组 */
- int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };
-
- int i, j;
-
- /* 访问:输出数组中每个元素的值 */
- for (i = 0; i < 5; i++)
- {
- for (j = 0; j < 2; j++)
- {
- Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
- }
- }
- Console.ReadKey();
- }
- }
- }
输出结果:
- a[0,0]: 0
- a[0,1]: 0
- a[1,0]: 1
- a[1,1]: 2
- a[2,0]: 2
- a[2,1]: 4
- a[3,0]: 3
- a[3,1]: 6
- a[4,0]: 4
- a[4,1]: 8
数组细节:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。