• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

http://www.kehui.net/html/article/26/26000.html

今天google了一下 接口 c#, 就看到这篇文章,想起前不久的一道面试题,竟然与之一样。
那天回来vs.net了一下.涉及到一个陌生的IComparer参数,原来这就是一种interface.

我看见网上有人问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 ,该接口只有一个成员函数需要你去实现。
 描述如下:
int Compare(
   object x,
   object y
);
(可以去参考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);

#结束

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# 修改工作组内Window2003密码及帐号维护发布时间:2022-07-10
下一篇:
C#编写的服务程序启动服务时报错误1053发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap