热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c#ArrayList的Sort()方法的使用

关键字:ArrayList,IComparer,接口,C#我看见网上有人问IComparer接口的使用,于是写了个小例子,和大家一块分享。有不足之处,望不吝指正1、建一个结构雇员的


关键字:ArrayList ,IComparer,接口,C#

我看见网上有人问IComparer接口的使用,于是写了个小例子,和大家一块分享。有不足之处,望不吝指正

1、建一个结构雇员的结构
?private struct Eployee{
???public string? name;
???public int age;
???public string sex;
??}
2、新建3个"雇员"
?Eployee ep1=new Eployee();
??ep1.name="小张";
??ep1.age=21;
??ep1.sex="男";
?Eployee ep2=new Eployee();
??ep2.name="老李";
??ep2.age=43;
??ep2.sex="男";
?Eployee ep3=new Eployee();
??ep3.name="施施";
??ep3.age=18;
??ep3.sex="男";
3、将3个"雇员" 加入"雇员列表";
?
?ArrayList EmployeeList=new ArrayList();
??EmployeeList.Add(ep1);
??EmployeeList.Add(ep2);
??EmployeeList.Add(ep3);

好了一切准备就绪,现在希望EmployeeList中得"雇员"是按年龄排序的。
咋办呢?
其实很简单,我们没必要自己去实现某个排序方法,冒泡或其他什么的。ArrayList 提供了我们现成的排序方法Sort();
它有三个重载,不管使用哪一个,至少要你提供一个Comparer:IComparer;来告诉Sort方法 你对"雇员"们的排序依据。
这个Comparer必须实现接口:System.Collections.IComparer ,该接口只有一个成员函数需要你去实现。
?描述如下:
?[Visual Basic]
Function Compare( _
?? ByVal x As Object, _
?? ByVal y As Object _
) As Integer
[C#]
int Compare(
?? object x,
?? object y
);
[C++]
int Compare(
?? Object* x,
?? Object* y
);
[JScript]
function Compare(
?? x : Object,
?? y : Object
) : int;
(可以去参考msdn)
知道了这些那我们来实现一个吧
private class myEmployeeCompare:System.Collections.IComparer {
???public int Compare(object x,object y){
????return ((Eployee)x).age-((Eployee)y).age;
???}
???
??}
因为我们比较的是“雇员”的age,所以我们可以放心的写实现语句
?return ((Eployee)x).age-((Eployee)y).age;

?myEmployeeCompare EmployeeCompare=new myEmployeeCompare();
?
ok现在我们可以对"雇员"们按年龄排序了
?
?EmployeeList.Sort(EmployeeCompare);

#结束

本人第二次写作,望各位多多支持!

以上代码只是一个粗略的演示。

希望能和大家多多讨论dotNet方面的技术。
QQ:14754875
论坛:http://www.shixm.com/bbs


推荐阅读
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了在实现了System.Collections.Generic.IDictionary接口的泛型字典类中如何使用foreach循环来枚举字典中的键值对。同时还讨论了非泛型字典类和泛型字典类在foreach循环中使用的不同类型,以及使用KeyValuePair类型在foreach循环中枚举泛型字典类的优势。阅读本文可以帮助您更好地理解泛型字典类的使用和性能优化。 ... [详细]
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • #include<iostream>usingnamespacestd;intmain(){HereIseperatemynumberbe ... [详细]
author-avatar
蓬从蓉Tahirah
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有