石家庄自适应网站建设,做化妆品注册和注册的网站,给我一个网站图片,微信公众号平台官网文章目录前言数组的概念1#xff0c;一维数组#xff1a;2#xff0c;多维数组#xff1a;3#xff0c;交错数组#xff1a;区别总结结语前言 #x1f604;大家好#xff0c;我是writer桑#xff0c; 这是自己整理的 C# 数组笔记#xff0c;方便自己学习的同时分享出…
文章目录前言数组的概念1一维数组2多维数组3交错数组区别总结结语前言 大家好我是writer桑 这是自己整理的 C# 数组笔记方便自己学习的同时分享出来感谢支持。 数组的概念 数组表示可以将同一类型的多个变量存储在一个数组的数据结构中同时分配指定的数组元素类型来声明数据元素的类型。 示例如下
// 声明一个5个整数的一维数组。
int[] array1 new int[5];// 声明和设置数组元素值。
int[] array2 new int[] { 1, 3, 5, 7, 9 };// 替代语法
int[] array3 { 1, 2, 3, 4, 5, 6 };//声明一个二维数组。
int[,] multiDimensionalArray1 new int[2, 3];// 声明和设置数组元素值。
int[,] multiDimensionalArray2 { { 1, 2, 3 }, { 4, 5, 6 } };// 声明一个交错数组。
int[][] jaggedArray new int[6][];// 声明交错数组结构中第一个数组的值。
jaggedArray[0] new int[4] { 1, 2, 3, 4 };数组可以是一维、多维或者交错的三者的区别在于声明数组的维度上数组元素的默认值设置为零而引用元素设置为 null声明后的数组在生存期内无法被更改数组元素可以通过索引进行访问包含 n 个元素的数组的索引为 0 到 n-1数组类型是从抽象的基类型 Array 派生的引用类型数组元素可以是任何类型其中包括本身的数组类型所有数组都实现了 IList 和 IEnumerable可以使用 foreach 语句循环访问数组和 Length 属性输出数组的长度。 单维数组还实现了 IListT 和 IEnumerableT
1一维数组 一维数组也是最简单、最常用的数组。在 C# 程序中使用 new 运算符实现一维数组同时指定数组元素类型和元素数量。 示例如下
// 声明一个元素数量为5的整数数组
int[] array1 new int[] { 1, 3, 5, 7, 9 };// 声明字符串数组
string[] weekDays new string[] { Sun, Mon, Tue, Wed, Thu, Fri, Sat };// 可以省略 new 表达式和数组类型, 称为隐式类型化数组
int[] array2 { 1, 3, 5, 7, 9 };
string[] weekDays2 { Sun, Mon, Tue, Wed, Thu, Fri, Sat };// 如果声明数组但未创建数组变量则必须在引用该数组之前使用 new 运算符分配新数组
int[] array3;
array3 new int[] { 1, 3, 5, 7, 9 }; 2多维数组 多维数组表示在一维数组的基础上增加了维度多维数组在声明和访问元素的方式和一维数组不同但在实现和属性上跟一维数组没有本质的区别 一维数组支持的操作多维数组也都支持。 示例如下
// 二维数组
int[,] array2D new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };// 指定了维度的相同数组。
int[,] array2Da new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };// 带有字符串元素的多维数组。
string[,] array2Db new string[3, 2]
{ {one, two }, { three, four},{ five, six }
};// 三维数组
int[,,] array3D new int[,,]
{ { { 1, 2, 3 }, { 4, 5, 6 } },{ { 7, 8, 9 }, { 10, 11, 12 } }
};// 指定了维度的相同数组。
int[,,] array3Da new int[2, 2, 3] { { { 1, 2, 3 }, { 4, 5, 6 } },{ { 7, 8, 9 }, { 10, 11, 12 } } };// 输出数组元素
Console.WriteLine(array2D[0, 0]);
Console.WriteLine(array2D[0, 1]);
Console.WriteLine(array2D[1, 0]);
Console.WriteLine(array2D[1, 1]);
Console.WriteLine(array2D[3, 0]);
Console.WriteLine(array2Db[1, 0]);
Console.WriteLine(array3Da[1, 0, 1]);
Console.WriteLine(array3D[1, 1, 2]);3交错数组 交错数组也是一个数组但数组元素也是数组元素大小可以不同。交错数组称为是数组的数组因此其元素为引用类型且被初始化为 null。在交错数组中可以混用交错数组和多维数组所以在声明和访问元素的方式上和一维、多维数组不同。 using System; class ArrayTest
{static void Main(){// 声明包含两个元素的交错数组并初始化元素 int[][] arr new int[][]{new int[5] { 1, 3, 5, 7, 9 },new int[4] { 2, 4, 6, 8 }};// 循环语句输出数组 for (int i 0; i arr.Length; i){Console.Write(Element({0}): , i);for (int j 0; j arr[i].Length; j){Console.Write({0}{1}, arr[i][j], j (arr[i].Length - 1) ? : );}Console.WriteLine();}}
}/* 输出Element(0): 1 3 5 7 9Element(1): 2 4 6 8
*/ 区别总结 一维数组和多维数组的区别多维数组是对一维数组下标访问的一种改变 例如 int[,] array2D { { 1, 2 }, { 3, 4 } }; 等价于 int[] array2 { 1, 2, 3, 4 }当以1为基准二维数组arr2[][]和一维数组arr1[]的下标访问转换符合 arr2[i][j] arr1[(i - 1)*n - i * (i - 1) / 2 j - i]编译器会自动采用这种算法。 交错数组和一维、多维数组的区别交错数组本质也是数组只不过区别于其它数组的是交错数组的每个元素又是一个数组也就是数组里面再嵌套数组这种逻辑。 结语 ✔️ 以上就是 C# 中一维、多维及交错数组的区别总结希望能够对大家有所帮助。望大家多多支持你们的支持就是笔者创作最大的动力