C#基础(3)一维数组

2024-09-04 15:44

本文主要是介绍C#基础(3)一维数组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

我们先前已经进行了枚举的学习,但其实枚举相对来说,设计到的计算逻辑比较少,大多数时候都是和switch一起进行分支判断,而且屏幕前的你应该也发现了,这玩意儿其实更多就是一个编码规范的学习。

但今天我们要开始学习的数组:一维数组,多维数组,交错数组,这些在你日后的算法学习中也会经常出现。

所以希望大家跟紧我的脚步,把这个知识点理解透彻。

数组有很多作用,以下是其中一些常见的作用:

  1. 存储和访问数据:数组可以用来存储一组数据项,并且可以通过索引来访问和操作这些数据项。数组的索引从0开始,可以直接访问数组中的任意一个元素。

  2. 快速查找:由于数组中的元素是按照固定位置存储的,因此可以通过索引快速定位到需要的元素,从而实现快速的查找操作。

  3. 排序和搜索:可以使用数组来实现排序和搜索算法,例如冒泡排序、快速排序、二分搜索等。

  4. 存储多个对象:数组可以存储多个对象,例如存储一组学生对象或者一组商品对象。

  5. 传递参数:可以将数组作为参数传递给函数或方法,以便在不同的上下文中共享和处理数据。

  6. 实现其他数据结构:许多其他数据结构,如栈、队列、链表等,都可以通过数组来实现。

总而言之,数组是一种非常基础且常用的数据结构,它可以在编程中起到很多方面的作用,使得数据的存储、操作和处理更加方便和高效。

基本概念

数组是存储异族相同类型数据的集合,而在实际开发中,一维数组简称为数组。

数组的声明

数组的声明本身有很多种形式,这里博主就带大家一起了解一下。

1.变量类型【】 数组名

int[] arr1;//相当于没有实际占用空间,只是声明了一个变量,具体存储多少和存储了什么并不知道

2.变量类型【】数组名=new 变量类型【数组长度】

int[] arr2=new int[5];//相当于用零占用了五个空间

这里如果声明了长度,c#会默认放0去实现占位,这也是计算机识别空间的一种手段,如果什么都不放,计算机怎么知道这里面有几个东西,又有多长呢。

3.变量类型【】数组名=new 变量类型【数组长度】{内容1,内容2...}

int[] arr3=new int[5]{1,2,3,4,5};

这种方式,其实相当于就是决定了空间中占位的元素,这个元素必须要和前面类型保持一致。

4.变量类型【】数组名=new 变量类型【】{内容1,内容2...}

int[] arr4=new int[]{1,2,3,4,};

这种写法其实就是让后面的元素来决定这个数组存储的长度,相当于第三种写法的一种省略。

5.变量类型【】数组名={内容1,内容2...}

int[] arr5={1,2,3}

显然,这是最方便的一种写法,也是比较常用的写法。

看完这五种写法,想毕你应该已经知道数组如何声明了,这些东西还是希望大家要牢记,基础一直都是重中之重。

接下来我们就来讲怎么用它

数组的使用

用它,就要先得到它。

获取数组的长度

Console.Writeline(arr.Length);

关键字:数组名.Length

获取数组中的具体元素

Console.Writeline(arr[0]);

[数字],我们一般叫下标,里面的数字就是索引。

数组的下标和索引是用来标识和访问数组中元素的方式。

数组下标是从0开始的整数,用来表示数组中元素的位置。例如,对于一个有5个元素的数组,它们的下标分别是0, 1, 2, 3, 4。通过使用数组下标,我们可以根据下标的值来访问数组中的元素,比如数组名[下标]的方式。

数组索引是用来表示数组中元素相对于数组起始位置的偏移量。索引也是从0开始的,和下标的概念是一样的。通过使用数组索引,可以像下标一样来访问数组中的元素,也就是数组名[索引]的方式。

所以,语法为:数组名[索引值]。

修改元素

直接赋值即可

arr[0]=99;

遍历数组(for循环)

下面是一个使用for循环遍历数组示例:

using System;class Program
{static void Main(string[] args){// 创建一个整数数组int[] numbers = { 1, 2, 3, 4, 5 };// 使用for循环遍历数组for (int i = 0; i < numbers.Length; i++){Console.WriteLine(numbers[i]);}}
}

以上代码创建了一个整数数组 numbers,然后使用 for 循环遍历数组并将数组元素打印到控制台上。输出结果将会是:

1
2
3
4
5

 其实遍历不难,因为一维数组本身思考量并不高。

增加和删除元素

重点:c#中数组初始化以后是不能够直接添加新的元素的!

所以我们增加元素的根本就是,用一个新数组去替换旧的数组

using System;class Program
{static void Main(string[] args){// 创建两个个整数数组int[] arr1 = new int[5] { 1,2,3,4,5};int[] arr2 = new int[6] ;// 使用for循环遍历数组for (int i = 0; i < arr1.Length; i++){arr2[i] = arr1[i];}arr1 = arr2;arr1[5] = 3;for (int i = 0; i < arr1.Length; i++){Console.WriteLine(arr1[i]);}}
}

你可能会疑惑,博主,这不是麻烦了吗?我直接用一个新数组存储了旧数组,然后再加一个元素不是一样的吗?当然,你是对的,但是这也体现的我们开头说的原则。博主这里带着你这样绕着弯子写的目的其实就是让你感受一下我刚刚提到的重点。

那你既然体验了增加元素是如何运作的,删除其实也是一样的道理,只是是用更短的数组去存储罢了。

查找指定元素

其实你到这里应该也能想到具体如何操作,其实就是配合if进行。

这里不说废话,我们直接进例子。

using System;class Program
{static void Main(string[] args){// 创建一个整数数组int[] arr1 = new int[5] { 1,2,3,4,5};int a =3//创建一个目标值// 使用for循环遍历数组for (int i = 0; i < arr1.Length; i++){if(arr1[i]==a){Console.Writeline("{0}",i);break;}}}
}

总结

其实到这里,我们关于一维数组的知识点就全部讲完了,你也发现博主讲一个数据类型的思路,其实就是从概念,到声明,再到使用,而使用中,其实就是五个过程,得,改,遍历,增,删,查。

日后我们进行其他复杂数据结构地讲解时,大抵也是这样的套路。

希望这篇对数组讲解的文章对你有帮助。

还是那句话,学习基础,戒骄戒躁,脚踏实地。

共勉。

请期待我的下一篇博文!

这篇关于C#基础(3)一维数组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136367

相关文章

C# foreach 循环中获取索引的实现方式

《C#foreach循环中获取索引的实现方式》:本文主要介绍C#foreach循环中获取索引的实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、手动维护索引变量二、LINQ Select + 元组解构三、扩展方法封装索引四、使用 for 循环替代

C# Where 泛型约束的实现

《C#Where泛型约束的实现》本文主要介绍了C#Where泛型约束的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用的对象约束分类where T : structwhere T : classwhere T : ne

Java数组初始化的五种方式

《Java数组初始化的五种方式》数组是Java中最基础且常用的数据结构之一,其初始化方式多样且各具特点,本文详细讲解Java数组初始化的五种方式,分析其适用场景、优劣势对比及注意事项,帮助避免常见陷阱... 目录1. 静态初始化:简洁但固定代码示例核心特点适用场景注意事项2. 动态初始化:灵活但需手动管理代

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

C#中DrawCurve的用法小结

《C#中DrawCurve的用法小结》本文主要介绍了C#中DrawCurve的用法小结,通常用于绘制一条平滑的曲线通过一系列给定的点,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 如何使用 DrawCurve 方法(不带弯曲程度)2. 如何使用 DrawCurve 方法(带弯曲程度)3.使用Dr