我是做二次开发的,要实现对某些对象进行排序的功能。问题如下:
已经有一个Hashtable,里面存储了N个的OP对象,OP类有Name,Modified,Type等多个属性,我想要实现这个Hashtable里的OP对象根据Modified属性进行排序,Modified是DateTime类型的。
请各位帮帮忙,这个实现该怎么写啊。
Hashtable中的数据是不能排序的,排了就不叫Hashtable了
Hashtable本身是无序的,你可以使用List<T>等泛型类。
一个实例:
Codeusing System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication3 { class Program { static void Main(string[] args) { List<OP> table = new List<OP>(); OP o = new OP(DateTime.Now); table.Add(o); o = new OP(DateTime.Now.AddDays(-1)); table.Add(o); o = new OP(DateTime.Now.AddDays(1)); table.Add(o); foreach (OP op in table) { Console.WriteLine(op.ToString()); } Console.WriteLine("----------------------"); table.Sort(new Comparison<OP>(delegate(OP a1, OP a2) { return DateTime.Compare(a1.Modified, a2.Modified); })); foreach (OP op in table) { Console.WriteLine(op.ToString()); } Console.ReadLine(); } } public class OP { public OP(DateTime _modified) { this._modified = _modified; } private string _name; private DateTime _modified; public DateTime Modified { get { return _modified; } set { _modified = value; } } public string Name { get { return _name; } set { _name = value; } } public override string ToString() { return this.Modified.ToString(); } }}