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

相关推荐
gugucoding1 小时前
21. 【C语言】打包不同类型:结构体
c语言·开发语言
Brookty1 小时前
【JavaEE】线程安全(一).4:写块串行保安全、CAS
java·开发语言·java-ee·多线程·线程安全
SRET1 小时前
Mineradio 沙盒隔离安装完全指南 | 一键安全运行 Electron 应用!!!
javascript·经验分享·安全·electron·aigc·音视频·ai编程
全栈前端老曹1 小时前
【MongoDB】安全与权限管理 —— 用户认证、角色权限、SSL 加密
前端·javascript·数据库·安全·mongodb·nosql·ssl
F20226974862 小时前
西门子 PLC 与 C# 通信
开发语言·c#
gugucoding2 小时前
31. 【C语言】堆栈与队列的实现
c语言·开发语言·数据结构·链表
万联WANFLOW3 小时前
多分支企业组网,IP 网段到底该怎么规划
开发语言·php
阿里嘎多学长3 小时前
2026-07-07 GitHub 热点项目精选
开发语言·程序员·github·代码托管
free355 小时前
作用域链与 Environment:变量查找、遮蔽和赋值怎么实现
javascript