C#数组查找与排序实现代码
2023-06-13 09:14:13 时间
1.查找对象
复制代码代码如下:
Personp1=newPerson("http://www.my400800.cn",18);
Personp2=newPerson("http://www.my400800.cn",19);
Personp3=newPerson("http://www.my400800.cn",20);
Person[]persons=...{p1,p2,p3};
//查找p2所在数组中的位置
Array.IndexOf<Person>(persons,p2);
2.查找值
Personp1=newPerson("http://www.my400800.cn",18);
Personp2=newPerson("http://blog.my400800.cn",19);
Personp3=newPerson("http://blog.my400800.cn/400电话",20);
Person[]persons=...{p1,p2,p3};
Personp4=newPerson(p2.Name,p2.Age);
//查找数组中与p4相同的元素所在的位置
Array.IndexOf<Person>(persons,p4);
但是,这种方法必需使Person重载Object的Equals比较方法
publicoverrideboolEquals(objectobj)
...{
Personperson=objasPerson;
if(person==null)returnfalse;
return(this.name==person.name&&this.age==person.age);
}
第二种按对象的值查找的方法
实现IComparabler接口
publicintCompareTo(objectobj)
...{
Personperson=objasPerson;
if(person==null)
thrownewException("Themethodoroperationisnotimplemented.");
//先从年龄开始比较
intageResult=this.age.CompareTo(person.age);
if(ageResult==0)
...{
//如果年龄相等在坐姓名比较
returnthis.name.CompareTo(person.name);
}
else
...{
returnageResult;
}
}
实现了IComparable接口后就可以使用Array.BinarySearch()进行查找了
//得到person在persons中有相同值的下标
//如果多个相同的值,BinarySearch将取最后
//一个有相同值的数组下标
Array.BinarySearch<Person>(persons,person);
注:使用Array.BinarySeach必须操作一个排序好的数组
3.排序
只要对象实现了IComparable接口,就可以使用Array中静态的方法Sort进行排序
//必需使比较的对象实现IComparable接口
Array.Sort<Person>(persons);
相关文章
- 【100个 Unity实用技能】| C# 中List 使用Exists方法判断是否存在符合条件的元素对象
- C# WinForm 设置DataGridView选中指定行
- C# Grid StackPanel DockPanel WrapPanel
- 《CLR via C#》笔记:第4部分 核心机制(4)
- C# 静态与动态数组
- c#学习之路: CheckForIllegalCrossThreadCalls = false 是干嘛的?
- C#读取文件为byte数组详解编程语言
- c#数组详解
- ASP.net(c#)用类的思想实现插入数据到ACCESS例子
- C#数组学习相关资料整理
- C#泛型数组学习小结
- C#数组初始化简析
- C#读取指定路径配置文件的方法
- c#.net全站防止SQL注入类的代码
- C#打印出正等腰三角形实例代码
- C#异常处理详解
- c#基础之数组与接口使用示例(遍历数组二维数组)
- C#实现HTTP上传文件的方法
- C#泛型和反射实例解析
- C#执行SQL事务用法实例