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# TryGetValue(TKey,TValue):获取具有指定键的值

    C#中的TryGetValue(TKey,TValue)是一个可以用于Dictionary类的方法。该方法的作用是获取指定键所对应的值,如果不存在则返回默认值。下面是该方法的完整攻略。 方法语法 Dictionary类型的TryGetValue()方法有如下两个重载形式: public bool TryGetValue(TKey key, out TValu…

    C# 2023年4月19日
    00
  • .Net Core创建Api进行文件上传功能

    在ASP.NET Core中,可以使用ApiController和IFormFile接口来创建API进行文件上传功能。以下是如何在ASP.NET Core中创建API进行文件上传功能的完整攻略。 步骤 步骤1:创建ASP.NET Core Web API应用程序 首先,需要创建一个ASP.NET Core Web API应用程序。可以使用以下命令创建一个新的…

    C# 2023年5月17日
    00
  • Windows服务编写(Windows Service,system权限)程序显示界面与用户交互(xp,win7通用)

    Windows服务编写(WindowsService,system权限)程序显示界面与用户交互(xp,win7通用) 在Windows中编写服务程序,本质上是开发一个后台运行的应用程序。因此,Windows服务程序在运行时是无法显示界面,并且默认使用SYSTEM权限运行。如果需要显示界面并与用户进行交互,需要使用一些技巧来实现。 基本思路 首先,需要使用Wi…

    C# 2023年5月15日
    00
  • 为HttpClient开启HTTP/2

    .Net Core在调用其他服务时,调用通常使用HttpClient,而HttpClient默认使用HTTP/1.1 。     配置 HttpClient 以使用 HTTP/2 h2 连接 自 .NET Core 3.0 发布以来, .NET 开发人员可以使用 HttpClient 启用 HTTP/2 。   设置 HTTP/2 的方法 DefaultRe…

    C# 2023年5月5日
    00
  • AspNetCore 成长杂记(一):JWT授权鉴权之生成JWT(其一)

    引子 最近不知怎么的,自从学了WebAPI(为什么是这个,而不是MVC,还不是因为MVC的Razor语法比较难学,生态不如现有的Vue等框架,webapi很好的结合了前端生态)以后,使用别人的组件一帆风顺,但是不知其意,突然很想自己实现一个基于的JWT认证服务,来好好了解一下这个内容。 起步 自从Session-Cookie方案逐渐用的越来越少,JWT的使用…

    C# 2023年4月24日
    00
  • asp.net 虚方法、抽象方法、接口疑问

    ASP.NET是一种用于构建Web应用程序的框架,它支持许多编程范式。虚方法、抽象方法和接口是OOP(面向对象编程)中的重要概念,它们可以帮助我们更好地组织代码、提高代码的可复用性和可维护性。 虚方法(Virtual Methods) 虚方法是可以被覆盖或重写的方法,它需要在父类中声明为virtual,然后在子类中使用override关键字进行覆盖实现。虚方…

    C# 2023年6月3日
    00
  • ASP.NET通过Remoting service上传文件

    下面是关于“ASP.NET通过Remotingservice上传文件”的完整攻略,包含两个示例。 1. RemotingService简介 RemotingService是.NET Framework中的一个类,它提供了一种在应用程序域之间进行远程调用的方式。使用RemotingService,可以将对象的方法暴露给远程客户端,从而实现远程调用。 2. 通过…

    C# 2023年5月15日
    00
  • C#实现的封装CURD到SqlHelper类用法简单分析

    让我来为您详细讲解“C#实现的封装CURD到SqlHelper类用法简单分析”的完整攻略。 1. 什么是CURD操作? CURD是数据库中的四种操作,包括新增(Create)、查询(Retrieve)、修改(Update)、删除(Delete)。在实际的应用场景中,我们经常需要对数据库进行这四种操作。 2. 什么是SqlHelper类? SqlHelper是…

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