波斯码BOSSMA Information Technology

c#继承接口IComparable实现泛型列表List排序

发布时间:2010年12月13日 / 分类:DOTNET / 次浏览 / 评论

通过继承接口IComparable,实现CompareTo方法,达到按照某个属性进行排序的目的。当然List排序的方法还有很多种,这里不一一列举。

定义要排序的实体类,实现接口IComparable的CompareTo方法。

public class PersonInfo : IComparable
{
??? public string PNO { get; set; }
??? public string PName { get; set; }
??? public PersonInfo(string pNO, string pName)
??? {
??????? PNO = pNO;
??????? PName = pName;
??? }
??? public int CompareTo(object obj)
??? {
??????? PersonInfo otherPersonInfo = obj as PersonInfo;
??????? if (otherPersonInfo != null)
??????? {
??????????? return this.PNO.CompareTo(otherPersonInfo.PNO);
??????? }
??????? else
??????? {
??????????? throw new ArgumentException("Object is not a PersonInfo!");
??????? }

??? }
}

在将数据全部填充到List后,调用Sort()方法,Sort方法通过PersonInfo的CompareTo方法进行比较排序。

public partial class Default3 : System.Web.UI.Page
{
??? protected void Page_Load(object sender, EventArgs e)
??? {
??????? List<PersonInfo> list = new List<PersonInfo>();
??????? list.Add(new PersonInfo("4", "猴六"));
??????? list.Add(new PersonInfo("2", "李四"));
??????? list.Add(new PersonInfo("1", "张三"));
??????? list.Add(new PersonInfo("3", "王五"));
??????? list.Sort();

??????? string str = string.Empty;
??????? foreach (PersonInfo obj in list)
??????? {
??????????? str += obj.PNO + " " + obj.PName + "<br/>";
??????? }
??????? Literal1.Text = str;
??? }
}
本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯码,原文地址《c#继承接口IComparable实现泛型列表List排序

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

发表评论