c#数组详解

C#数组详解

什么是数组

数组是 C# 中最常用的一种数据结构,它可以用于存储同一种数据类型的多个元素。数组中的元素可以通过数组下标进行访问,下标从 0 开始计数。

数组定义和初始化

下面是定义和初始化一个数组的语法:

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

其中,数组类型可以为整型、字符型、浮点型、对象型(即自定义类)等。数组长度为整型数据,用于指定数组中可以容纳的元素个数。

以下是一些数组的初始化示例:

int[] array1 = new int[10];  // 创建一个包含 10 个整数的数组
char[] array2 = new char[20];// 创建一个包含 20 个字符的数组
double[] array3 = new double[5];// 创建一个包含 5 个双精度浮点数的数组
string[] array4 = new string[3] { "hello", "world", "!" };// 创建一个包含 3 个字符串的数组,数组中初始化的元素为 "hello"、"world" 和 "!"

数组访问

数组访问通常使用下标操作符 [],即可访问数组中的元素:

数据类型[] 数组名 = new 数据类型[数组长度];
数组名[下标] = 值;//设置某个下标上的值
数据类型 变量名 = 数组名[下标];//获取某个下标上的值

下标从数组的开头开始,从 0 开始计数。下标最大值为数组长度减一。例如在一个长度为 5 的数组中,下标的有效值为 0、1、2、3、4。

以下是一个简单的例子,展示如何访问数组中的元素:

int[] array = new int[5] { 10, 20, 30, 40, 50 };

for (int i = 0; i < array.Length; i++) {
       Console.WriteLine("array[{0}] = {1}", i, array[i]);
}

输出:

array[0] = 10
array[1] = 20
array[2] = 30
array[3] = 40
array[4] = 50

多维数组

多维数组,如二维数组,可以使用下面的语法定义和初始化:

数据类型[,] 数组名 = new 数据类型[行数, 列数];

以下是一个二维数组的示例,展示了如何定义、初始化和访问它:

int[,] arr = new int[3, 4] {
    {0, 1, 2, 3},  /*  初始化索引号为 0 的行 */
    {4, 5, 6, 7},  /*  初始化索引号为 1 的行 */
    {8, 9, 10, 11} /*  初始化索引号为 2 的行 */
};

//输出二维数组的元素
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        Console.WriteLine("arr[{0},{1}] = {2}", i, j, arr[i, j]);
    }
}

输出:

arr[0,0] = 0
arr[0,1] = 1
arr[0,2] = 2
arr[0,3] = 3
arr[1,0] = 4
arr[1,1] = 5
arr[1,2] = 6
arr[1,3] = 7
arr[2,0] = 8
arr[2,1] = 9
arr[2,2] = 10
arr[2,3] = 11

数组的属性和方法

以下是一些常用的数组属性和方法:

Length 属性

获取数组中的元素个数。

int[] array = new int[5] { 10, 20, 30, 40, 50 };
Console.WriteLine(array.Length); // 输出 5

Rank 属性

获取数组的维数。

int[,] arr = newint[3, 4];
Console.WriteLine(arr.Rank); // 输出 2

GetLength 方法

获取数组中某个维度的长度。

int[,] arr = new int[3, 4];

Console.WriteLine(arr.GetLength(0)); // 输出 3,表示第一维度的长度
Console.WriteLine(arr.GetLength(1)); // 输出 4,表示第二维度的长度

Clone 方法

用于创建一个与原始数组相同的浅表副本。

int[] array1 = new int[] { 1, 2, 3, 4, 5 };
int[] array2 = (int[])array1.Clone();

Copy 方法

用于将一个数组中的元素复制到另一个数组中。

int[] array1 = new int[] { 1, 2, 3, 4, 5 };
int[] array2 = new int[5];
array1.CopyTo(array2, 0);//从第二个数组的 0 号下标开始拷贝

总结

本文介绍了 C# 数组的定义、初始化、访问、多维数组和一些常用的数组属性和方法。数组是一个非常方便的数据结构,可以存储大量的数据,应该在编写 C# 程序中经常使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#数组详解 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • 关于C#数强转会不会抛出异常详解

    关于”C#数强转会不会抛出异常详解”的攻略,我会分为以下几个部分进行讲解: 什么是强制类型转换? C#数值类型之间的强制类型转换规则 强制类型转换会不会抛出异常? 强制类型转换时如何避免异常的发生? 两个示例演示强制类型转换的使用和异常处理 1. 什么是强制类型转换? 强制类型转换是将一个数据类型的值转换为另一个数据类型的过程,通常也被称为“类型转换”或“类…

    C# 2023年5月15日
    00
  • C# 中的partial 关键字详解

    C# 中的partial 关键字详解 在C#中,使用 partial 关键字可以将一个类、结构体、接口或者方法分为多个部分进行声明,这些部分可以分布在同一个源文件中,也可以分布在不同的文件中。 partial类 声明方式 在一个类的声明前添加 partial 关键字,该类即可被分为多个部分,示例代码如下: partial class MyClass { //…

    C# 2023年6月7日
    00
  • C#判断字符串中是否包含指定字符串及contains与indexof方法效率问题

    C#中判断一个字符串是否包含子字符串是一个常用的任务。本文将讲解如何使用C#的contains和indexof方法来实现这个任务,并探讨它们的效率问题。 contains方法 contains方法是String类中的一种方法,用于判断一个字符串是否包含指定的子字符串。代码示例如下: string str1 = "hello world";…

    C# 2023年6月8日
    00
  • C#中的正则表达式双引号问题

    C#中的正则表达式中双引号问题,主要是因为C#语言本身使用双引号来定义字符串,而正则表达式中也常常需要使用双引号来定义某些模式。因此,在将正则表达式作为字符串处理时,需要注意双引号字符的转义问题。 1. 双引号的转义 在C#中,要在字符串中插入双引号字符,需要使用反斜杠(\)字符进行转义,例如: string str = "This is a \&…

    C# 2023年6月7日
    00
  • C#使用Aspose.Cells控件读取Excel

    以下是“C#使用Aspose.Cells控件读取Excel”的完整攻略,包括了两个示例: 1. 安装Aspose.Cells控件 要使用Aspose.Cells控件,需要先安装它。可以通过NuGet命令行工具安装或通过Visual Studio的NuGet包管理器来安装。具体操作步骤如下: 打开Visual Studio,打开项目,右键单击项目文件夹,选择“…

    C# 2023年5月31日
    00
  • 详解.Net中字符串不变性与相等判断的特殊场景

    针对.Net中字符串不变性与相等判断的特殊场景,我们需要从以下几个方面进行讲解: 字符串不变性的概念与原理 字符串相等判断的常规方法 特殊场景下的字符串相等判断问题及解决方法 1. 字符串不变性的概念与原理 在 .Net 中,为了追求运行效率和确保字符串的安全性,字符串被设计为不可变对象,即字符串一旦被创建之后,不能被修改。基于这种不可变的特性,字符串在被使…

    C# 2023年5月31日
    00
  • C#生成带注释的dll并引用实现

    生成带注释的dll并引用实现的完整攻略如下: 1. 创建Class Library项目 首先,我们需要在Visual Studio中创建一个Class Library项目,命名为”MyLibrary”(或其他你希望名字)。 2. 编写代码并添加注释 编写一个简单的类,并为类、属性和方法添加注释。代码如下: /// <summary> /// My…

    C# 2023年6月7日
    00
  • C#验证控件validator的简单使用

    下面是详细讲解“C#验证控件validator的简单使用”的完整攻略。 1. 什么是validator控件 validator控件是ASP.NET框架提供的一种用于客户端数据验证的控件。它可以帮助我们在客户端对用户提交的数据进行验证,有助于提高用户体验和数据的正确性。 2. validator控件的使用 2.1 基本使用 validator控件有多种类型,如…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部