C# ArrayList 的Sort函数使用

本文介绍如何在C#中创建雇员结构并利用ArrayList的Sort方法进行年龄排序,通过自定义IComparer实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载于:http://www.kehui.net/html/article/26/26000.html

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值