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一键拼接输出数组全部元素

相关推荐
白露与泡影1 小时前
Java虚拟线程实战:从线程池痛点到性能优化全流程
java·开发语言·性能优化
嘟嘟07171 小时前
Python切片技巧×DeepSeek API:手把手教你打造智能商品文案生成器
前端·javascript
IT空门:门主1 小时前
Java 单例模式详解:7 种实现方式 + volatile 原理 + 反射与序列化问题
java·开发语言·单例模式
Byte Wizard1 小时前
自定义类型:联合和枚举
c语言·开发语言
月月大王的3D日记1 小时前
Three.js Day 4:材质初探(上)——Basic、Normal、Matcap、Depth 一口气认识四种
javascript
Zhang~Ling1 小时前
C++ 继承机制详解下:多继承、虚继承与菱形继承底层原理
开发语言·c++·算法
来自上海的这位朋友1 小时前
浏览器里的实时对局同步:WildHunt 的 WebSocket、输入序号与服务端快照
前端·javascript·后端
遇事不決洛必達1 小时前
【爬虫随笔】常见js混淆原理和特征
javascript·爬虫·逆向·js加密
思麟呀1 小时前
C++工业级日志项目(四)日志落地
linux·开发语言·c++·windows