news 2026/5/9 8:05:54

C# 随机数添加数组对象和数组的查询方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C# 随机数添加数组对象和数组的查询方法

一、数组对象添加数据使用随机数

案例:定义一个数组,存储10个People对象(姓名、性别、年龄)要求年龄随机在18-30之间,性别也是随机的 姓名也是随机的

首先声明一个带有(姓名、性别、年龄)属性的类,这里我使用枚举类型表示性别

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; } // 年龄 }

创建一个数据对象

People[] ps = new People[10];

我们知道随机数Random这个方法只能随机整数或小数,所以我们需要声明数组,里面存放我们的姓和名字,让他们随机组合,组成随机名字。

Random ran = new Random(); //随机对象 //定义姓的数组 string[] xings = new string[] { "张","王","邢","陈","刘","许","马","毕","郭","李","华"}; string[] names = new string[] { "钢蛋","铁蛋","臭蛋","丫蛋","核弹","氢弹","蛋蛋" };

然后在for循环里将姓和名组合起来,并将数据存放到数组对象中。

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;//t添加数组元素 }

遍历所有的对象显示

for (int i = 0; i < ps.Length; i++) { Console.WriteLine(ps[i].Name + "\t" + ps[i].Age + "\t" + ps[i].XingBie); }

二、

//查询目的 :通过数组查询一些满足条件(相等、不等等)的元素
//有些方法属于Array静态的方法 使用Array.方法()
//有些方法属于非静态的方法 使用对象.方法名(),需要先去创建对象

FindIndex():根据参数2的条件返回第一个满足条件元素的索引值

//现在找到满足年龄是成年的人 //1 FindIndex():根据参数2的条件返回第一个满足条件元素的索引值, // FindIndex()其实他的功能已经实现了遍历功能,并且把元素传递到参数2函数中 //参数1:传递数组 //参数2 是一个函数,里面代码匹配的条件,是bool返回值的 并且有一个参数 这个参数数组里面每一个元素 例如找年龄大于18的元素的索引 Console.WriteLine(Array.FindIndex(ages, FindBig18) );//8 //Console.WriteLine(Array.FindIndex(ages, v => v%2==0 )); 下一个课件讲 Console.WriteLine(Array.FindIndex(new string[] {"张三","历史","王五","马六" },FindName));

FindAll() 找到满足条件所有的元素 返回是一个数组

//2 FindAll() 找到满足条件所有的元素 返回是一个数组 //参数1是数组,参数2检索条件的函数 int[] arr= Array.FindAll(ages,FindEven);

ForEach()循环遍历

//参数1 遍历的数组 //参数2 是一个函数,v就是每一个元素 Array.ForEach(arr, v => Console.WriteLine(v+"--------"));

4 Find 找到满足条件的元素

//定义方法的地方 如果方法只用在当前函数中 可以这样定义 bool FindStart(string v) { return v.StartsWith("ssr"); } 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","ab" ,"abc", "b" }, FindLast1));

6 TrueForAll() 元素是不是都满足一个条件,如果都满足 为true,只要一个不满足返回值为false

bool 找到所有满足条件函数(int v) { return v < 30; } Console.WriteLine(Array.TrueForAll(ages, 找到所有满足条件函数));

7 Exists()数组里面是否存在满足条件的元素,存在一个满足条件即可

Console.WriteLine(Array.Exists(ages, 找到所有满足条件函数)); // true

8 Any() 满足条件有一个即可 等同于Array.Exist()

string[] names = new string[] { "ss", "ssr", "r", "ab", "abc", "b" }; Console.WriteLine(names.Any(FindLast1));
//9 All()所有的元素都得满足条件 整体结果为true, 等同于 Array.TrueForAll() Console.WriteLine(names.All(FindLast1)); //10Contains() 数组是否包含这个元素 Console.WriteLine(names.Contains("abcd")+"------"); //11Concat() 串联俩个数组 string[] ss = { "2", "3" }; foreach (string item in names.Concat(ss)) { Console.WriteLine(item+"++++++++"); }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 17:26:01

存储器和寄存器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录一、存储器和寄存器1.存储器1.1常见的存储器介绍1.1RAM1&#xff09;SRAM2&#xff09;DRAM1.2ROM1&#xff09;MASK ROM2&#xff09;PROM3&#xff09;EPROM4&…

作者头像 李华
网站建设 2026/5/5 21:58:21

Redis 事务机制,不得不会

目录 一、Redis 事务的核心定义 二、核心命令与执行流程 1. 核心命令&#xff08;含阿里面试高频考点&#xff09; 2. 执行流程实操&#xff08;阿里面试常考场景&#xff1a;用户积分兑换&#xff09; 三、Redis 事务的核心特性 1. 原子性&#xff1a;“部分满足”&…

作者头像 李华
网站建设 2026/5/7 22:19:24

Wan2.2-T2V-A14B能否生成慢动作或快进效果?时间控制机制

Wan2.2-T2V-A14B能否生成慢动作或快进效果&#xff1f;时间控制机制 在短视频节奏越来越“卷”的今天&#xff0c;你有没有想过—— 我们还能不能用AI&#xff0c;造出一滴水珠缓缓升空、逆向飞回喷头的瞬间&#xff1f;&#x1f30a; 或者让一场足球赛的精彩进球&#xff0c;…

作者头像 李华
网站建设 2026/5/3 6:30:30

从零构建量子开发环境,一键提交作业的VSCode+Azu​​re CLI实战秘籍

第一章&#xff1a;量子开发环境构建前的准备在进入量子计算开发之前&#xff0c;搭建一个稳定且高效的开发环境是关键前提。这不仅涉及软件工具链的选择&#xff0c;还包括对硬件资源、依赖库和运行平台的充分评估。系统与平台要求 大多数量子开发框架支持主流操作系统&#x…

作者头像 李华
网站建设 2026/5/3 12:58:12

Wan2.2-T2V-A14B能否生成法庭审判情景再现?

Wan2.2-T2V-A14B能否生成法庭审判情景再现&#xff1f; 你有没有想过&#xff0c;未来的法院培训视频不再需要请演员、搭布景、反复排练&#xff1f;而是输入一段文字描述&#xff0c;几秒钟后&#xff0c;一场高度还原的“虚拟庭审”就在屏幕上自动上演——法官敲槌、律师陈词…

作者头像 李华
网站建设 2026/5/2 14:27:36

千亿参数模型本地化部署革命:Kimi K2量化技术深度解析

在人工智能技术飞速发展的今天&#xff0c;千亿参数大模型的本地化部署正迎来重大突破。Moonshot AI推出的Kimi-K2-Instruct模型通过Unsloth动态量化技术&#xff0c;成功将原本需要TB级存储空间的模型压缩至数百GB&#xff0c;为个人开发者和中小企业打开了通往前沿AI技术的大…

作者头像 李华