news 2026/9/2 23:35:21

C#数组操作与引用测试全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#数组操作与引用测试全解析

《数组的引用测试和属性方法》

People[] ps = new People[10];//创建10个长度的数组 存放people类型对象
Random ran = new Random();//随机对象
//定义姓的数组
string[] xings = new string[] { "张", "王", "杨", "李", "郭", "马", "刘", "许" };
string[] names = new string[] { "q", "w", "e", "d", "s", "p", "a", "x", "o", "l" };
for (int i = 0; i < ps.Length; i++)
{
int i1 = ran.Next(0,xings.Length);
int i2 =ran.Next(0,names.Length);
People p = new People();//创建10个对象
p.Name = xings[i1]+names[i2];
p.Age = ran.Next(18,30);
//枚举类型
//ran.Next(1,3)数字类型
p.Xingbie = ran.Next(1, 3) == 1 ? People.Sex.man : People.Sex.woman;
ps[i] = p;

}
for (int i = 0; i < ps.Length; i++)
{
Console.WriteLine(ps[i].Name + "\t" + ps[i].Age + "\t" + ps[i].Xingbie);
}
//数组的引用测试
int[] ints = new int[] { 1, 2, 3 };
int[] ints2 = ints;//赋值关系
ints[0] = 999;
Console.WriteLine(ints2[0]);//999
Console.WriteLine(ints[0]);//999

//方法传递参数时候对数组引用测试
int[] ints3 = new int[] { 1, 2, 3 };
Test1(ints3);//i1=ints3 赋值过程
Console.WriteLine(ints3[0]);//999
//数组的属性和方法
string[] namess = { "李易峰", "吴亦凡", "罗志祥", "蔡徐坤" };
string[,] nas = new string[3, 4];//二维数组
Console.WriteLine(namess.Length);//32位数组长度
Console.WriteLine(namess.LongLength);//64位数字数组长度
Console.WriteLine(namess.Rank);//1维度
Console.WriteLine(nas.Rank);//2维度

//int[]数组 ,凡是数组都是Array的实例
//Array.Clear(namess, 3, 1);//从参数1数组的参数2位置删除参数3个数的元素,b把删除的元素设置为默认值
//Array.Reverse(namess);//把数组元素颠倒位置
string[] nn = new string[10];
//copy()复制
Array.Copy(namess, nn, 4);//把参数1数组赋值到参数2数组 赋值参数3个数

//IndexOf()元素所在索引值
Console.WriteLine(Array.IndexOf(namess,"蔡徐坤")+"----------");
Console.WriteLine(namess[0] + namess[1] + namess[2] + namess[3]);

foreach ( string item in nn)//快速遍历
{
Console.WriteLine(item);
}

Console.ReadKey();
}
static void Test1(int[]il)//参数是一个数组
{
il[0] = 999;
}

}
class People
{
//枚举类型 名称 Sex 定义Sex类型的变量
public enum Sex
{

man=1,//男
woman=2, //女
}

public string Name { get; set; }//姓名
public Sex Xingbie { get; set; }//性别枚举
public int Age { get; set; }//年龄

}
}

《数组查询方法》

//目的 通过数组查询一些满足条件(相等,不等)的元素
//有些方法属于Array静态的方法 使用Array 方法()
//有些方法属于非静态的方法,使用对象.方法名(),需要先去创建对象
Array.Resize(ref args, 0);
int[] ages = { 1, 2, 3, 4, 5, 6, 7, 8, 20, 19, 29 };
//现在找到满足年龄是成年的人
//.FindIndex(): 根据参数2的条件返回第一个满足条件元素的索引值
//1FindIndex()其实他的功能已经实现了遍历功能,并且把元素传递到参数2函数中
//参数1传递数组
//参数2是一个函数,里面代码匹配的条件 ,是一个bool返回值的 ,并且有一个参数 这个参数数组里面每一个元素,例如找年龄大于18的元素的索引
Console.WriteLine(Array.FindIndex(ages, FindBig18));
//Console.WriteLine(Array.FindIndex(ages, v => v % 2 == 0));//下一个课件讲
Console.WriteLine(Array.FindIndex(new string[] {"张三","李四","王五","马六"},FindName));

//2FindAll()找到满足条件所有的元素 返回是一个数组
//参数1是数组 ,参数2检索条件的函数
int[] arr=Array.FindAll(ages,FindEven);
//3ForEach()循环遍历
//参数1 遍历的数组
//参数2 是一个函数,v就是每一个元素
Array.ForEach(arr, v => Console.WriteLine(v));

//4 Find 找到满足条件的元素
//定义方法的地方 如果方法只用在当前函数中 可以这样定义
bool FindStart(string v)
{
return v.StartsWith("s");
}
Console.WriteLine(Array.Find(new string[] { "ss", "ssr", "r", "a", "b" }, FindStart));


//5 FindLast()从后面找 找到满足条件的元素
bool FindLast1(string v)
{
return v.StartsWith("ab");
}
Console.WriteLine(Array.FindLast(new string[] { "ss", "ssr", "r", "a", "b","abc" }, FindLast1));


//6 TrueForAll() 元素是不是都满足一个条件,如果都满足为true ,只要一个不满足返回值为false
bool 找到所有满足条件函数(int v)
{
return v < 30;
}
Array.TrueForAll(ages, 找到所有满足条件函数);

//7 Exists()数组里面是否存在满足条件的元素,存在一个满足条件即可
Console.WriteLine(Array.Exists(ages, 找到所有满足条件函数));


//8Any() 满足条件一个即可 等同于Array.Exist()
string[]names= new string[] { "ss", "ssr", "r", "a", "b", "abc" };
Console.WriteLine(names.Any(FindLast1));

//9 All()所有的元素都得满足条件 整体结果为true
Console.WriteLine(names.All(FindLast1));

//10 .Contains()数组是否包含这个元素
Console.WriteLine(names.Contains("ab"));

//11 Concat()串联两个数组
string[] ss = { "2", "3" };
//string [] sss = (string[])names.Concat(ss);//= (string[])强制转成string[]类型
foreach (string item in names.Concat(ss))
{
Console.WriteLine(item+"+++++++");
}

Console.ReadKey();
}
static bool FindBig18(int v)
{
//v就是每一个元素 ages[i]
return v > 18;//如果v>18,返回true,如果v<=18,返回false
}
static bool FindName(string v)
{
return v == "张三";

}
static bool FindEven(int v)
{
return v % 2 == 0;
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 10:28:05

DeepSeek-V3.1:混合思维大模型如何重塑企业AI应用范式

DeepSeek-V3.1&#xff1a;混合思维大模型如何重塑企业AI应用范式 【免费下载链接】DeepSeek-V3.1-BF16 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/DeepSeek-V3.1-BF16 导语 DeepSeek-V3.1通过创新的混合思维模式与智能工具调用优化&#xff0c;重新定义了…

作者头像 李华
网站建设 2026/9/1 11:37:54

抖音无水印视频下载工具完整使用指南

还在为抖音视频上的水印烦恼吗&#xff1f;想要完美保存精彩瞬间却苦于没有合适工具&#xff1f;douyin_downloader正是你需要的解决方案&#xff0c;这款开源工具支持抖音视频无水印下载&#xff0c;让你轻松获取原画质的高清视频文件。 【免费下载链接】douyin_downloader 抖…

作者头像 李华
网站建设 2026/9/1 23:08:08

QQ空间数据备份终极指南:一键导出完整回忆

在数字化时代&#xff0c;QQ空间承载了我们太多的青春记忆。从第一条说说到最后一张照片&#xff0c;每一段文字、每一张图片都是珍贵的数字资料。然而&#xff0c;平台风险、账号异常等问题时刻威胁着这些回忆的安全。QQ空间导出助手为您提供完整的本地数据备份解决方案&#…

作者头像 李华
网站建设 2026/9/2 22:50:32

Arknights-Mower终极指南:告别手动操作的明日方舟完整解决方案

Arknights-Mower终极指南&#xff1a;告别手动操作的明日方舟完整解决方案 【免费下载链接】arknights-mower 《明日方舟》长草助手 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-mower 还在为《明日方舟》的重复性操作感到疲惫吗&#xff1f;基建管理、素材…

作者头像 李华
网站建设 2026/9/2 19:44:13

Windows Insider免登录终极指南:轻松获取预览版系统

Windows Insider免登录终极指南&#xff1a;轻松获取预览版系统 【免费下载链接】offlineinsiderenroll 项目地址: https://gitcode.com/gh_mirrors/of/offlineinsiderenroll 想要体验最新的Windows功能却不想注册Microsoft账户&#xff1f;OfflineInsiderEnroll为您提…

作者头像 李华
网站建设 2026/9/1 3:46:03

高效参数微调--MoE+Lora

文章目录 Moe与LoRA结合的高效微调方法 实现步骤 关键配置参数 来源:https://github.com/Cohere-Labs-Community/parameter-efficient-moe/blob/main/demo.png 注:原文未能完整分析完整,待补充 Moe与LoRA结合的高效微调方法 混合专家(MoE)与低秩适应(LoRA)结合是一种…

作者头像 李华