C# 数组属性和方法(Clear / Copy / IndexOf / LastIndexOf)

一、数组基础属性(所有数组通用)

以下属性为 非静态属性,直接 数组名.属性 调用

复制代码
int[] nums = { 1, 2, 3, 4, 5, 6 };
Console.WriteLine(nums.Length);     // 获取数组总元素个数:6
Console.WriteLine(nums.Rank);        // 获取数组维度数:1(一维数组)
Console.WriteLine(nums.LongLength);  // 64位长度,超大数组使用:6

必背释义

  • Length:最常用,获取数组元素总个数

  • Rank:获取数组维度(一维=1,二维=2,三维=3)

  • LongLength:适配超大数组的64位长度获取


二、数组静态方法总说明

所有下面方法全部是 Array 静态方法

调用方式:Array.方法名()

包含:Clear、Copy、IndexOf、LastIndexOf


三、Array.Clear() 清空数组方法

1. 作用

将数组指定范围的元素,恢复为该类型默认值

  • 数值数组 → 清空为0

  • bool数组 → 清空为false

  • 字符串数组 → 清空为null

2. 语法参数

Array.Clear(数组, 开始下标, 清空长度);

3. 代码案例

复制代码
 //方法:非静态方法 和 静态方法
 //1 Array.Clear(nums,0,nums.Length);// 从0开始 清空长度为nums.Length
int[] nums = { 1, 2, 3, 4, 5, 6 };
// 从下标1开始,清空3个元素
Array.Clear(nums, 1, 3);
Console.WriteLine(string.Join("-",nums)); 
// 输出:1-0-0-0-5-6
//Join 把数组的元素按照字符串方式进行打印

4. 考点总结

  • 不会删除数组长度,只是恢复默认值

  • 清空规则:起始下标 + 清空个数,不能越界


四、Array.Copy() 数组复制方法(超级必考)

1. 作用

将原数组数据,批量复制到目标数组

2. 重载1:基础三参数

Array.Copy(原数组, 目标数组, 复制长度);

复制代码
int[] nums1 = { 1, 2, 3, 4 };
int[] nums2 = new int[nums1.Length];

Array.Copy(nums1,nums2,4);
nums1[0] = 100; // 修改原数组//修改原数组的元素 是否影响nums2数组,

 //如果数组存储的是值类型,使用copy方法进行复制时候 ,修改一个,不会影响另一个
//如果数组存储的是引用类型,使用copy方法进行复制时候 ,修改一个,会影响另一个

//参数1 要复制的数组
//参数2 复制源数组的位置
//参数3 要复制的目标数组
//参数4  复制到目标数组的位置
//参数5  复制的长度
//Array.Copy(nums1,1, nums2, 1,2);
Console.WriteLine(string.Join("-", nums2)); 
// 输出:1-2-3-4

3. 核心大坑(考试必考简答题)

Copy复制是值拷贝,不是地址拷贝

  • 值类型数组(int、double、bool) :复制后两个数组完全独立,改一个不影响另一个

  • 引用类型数组(对象、string):复制的是地址,改一个会影响另一个

4. 重载2:完整五参数(精细复制)

Array.Copy(原数组, 原起始下标, 目标数组, 目标起始下标, 复制长度);

复制代码
int[] nums1 = { 1, 2, 3, 4 };
int[] nums2 = new int[4];

// 从原数组1下标开始,复制2个,放到目标数组1下标位置
Array.Copy(nums1,1, nums2, 1,2);
Console.WriteLine(string.Join("-", nums2)); 
// 输出:1-2-3-0

五、Array.IndexOf() 查找元素下标

1. 作用

从头往后查找,返回第一个匹配元素的下标

找不到返回:-1

2. 三种重载方式

① 基础查找

复制代码
int[] nums3 = { 1, 2, 3, 4,3};
Console.WriteLine(Array.IndexOf(nums3,3)); 
// 输出 2(第一个3在下标2)

② 指定起始查找位置

复制代码
// 从下标3开始往后找
Console.WriteLine(Array.IndexOf(nums3,3,3)); 
// 输出 4

③ 指定起始位置 + 查找长度

复制代码
// 从下标3开始,查找长度2范围内
Console.WriteLine(Array.IndexOf(nums3, 3, 3, 2));

六、Array.LastIndexOf() 倒序查找

1. 作用

从后往前查找,返回第一个匹配到的下标(即最后一个匹配元素)

复制代码
int[] nums3 = { 1, 2, 3, 4,3};
Console.WriteLine(Array.LastIndexOf(nums3,3)); 
// 输出 4

七、string.Join() 终极输出方法

作用

快速将数组所有元素拼接为字符串,无需循环遍历

语法

string.Join("分隔符", 数组名)

示例

string.Join("-",nums) → 元素之间用短横线连接输出


八、数组方法 终极必背总结

  • Length总个数,Rank维度数,LongLength超大长度

  • Clear清空为默认值,不改变数组长度

  • Copy值类型复制相互独立,引用类型复制共享地址

  • IndexOf正序找第一个,找不到返回-1

  • LastIndexOf倒序找最后一个

  • string.Join一键拼接输出数组全部元素

相关推荐
竹林8188 小时前
Web3表单签名验证:我用 wagmi 和 ethers 给 DApp 加了一个“免密登录”,踩坑记录全在这了
javascript
用户6990304848758 小时前
try catch使用场景 处理同步代码错误兼容用的
javascript·uni-app
LDR0068 小时前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术8 小时前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园8 小时前
C++20 Modules 模块详解
java·开发语言·spring
VidDown8 小时前
VidDown 工具站:免费、本地优先的开发者工具箱
javascript·编辑器·音视频·视频编解码·视频
swordbob9 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享9 小时前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.9 小时前
C语言--day30
c语言·开发语言
何以解忧,唯有..10 小时前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang