波斯码BOSSMA Information Technology

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

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

通过继承接口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排序

关键字:

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

发表评论