泛型实现List(ListT)排序
生活随笔
收集整理的這篇文章主要介紹了
泛型实现List(ListT)排序
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
代碼 public?class?Post?:?IComparable<Post>
{
????private?string?id?=?string.Empty;
????private?string?title?=?string.Empty;
????private?int?orderby;
????public?string?ID
????{
????????get
????????{
????????????return?id;
????????}
????????set
????????{
????????????id?=?value;
????????}
????}
????public?string?Title
????{
????????get
????????{
????????????return?title;
????????}
????????set
????????{
????????????title?=?value;
????????}
????}
????public?int?OrderBy
????{
????????get
????????{
????????????return?orderby;
????????}
????????set
????????{
????????????orderby?=?value;
????????}
????}
????#region?IComparable<Post>?成員
????public?int?CompareTo(Post?other)
????{
????????return?(?orderby-?other.orderby);
????}
????#endregion
}
????public?int?CompareTo(Post?other)
????{
????????return?(?orderby-?other.orderby);
????}
??#endregion
????public?int?CompareTo(Post?other)
????{
????????return?(?other.orderby-?orderby);
????}
????#endregion
????????for?(int?i?=?0;?i?<?10;?i++)
????????{
????????????Post?post?=?new?Post();
????????????post.ID?=?i.ToString();
????????????post.Title?=?"哈哈";
????????????post.OrderBy?=?i;
????????????posts.Add(post);
????????}
????????//排序
????????posts.Sort();
????????foreach?(Post?p?in?posts)
????????{
????????????Response.Write(p.ID?+?"<br>");
????????}
????????for?(int?i?=?0;?i?<?10;?i++)
????????{
????????????Post?post?=?new?Post();
????????????post.ID?=?i.ToString();
????????????post.Title?=?"哈哈";
????????????post.OrderBy?=?i;
????????????posts.Add(post);
????????}
????????//排序
????????//posts.Sort();
????????posts.Sort(delegate(Post?p1,?Post?p2)
????????????{
????????????????return?p2.ID.CompareTo(p1.ID);
????????????}
????????);
????????foreach?(Post?p?in?posts)
????????{
????????????Response.Write(p.ID?+?"<br>");
????????}
{
????private?string?id?=?string.Empty;
????private?string?title?=?string.Empty;
????private?int?orderby;
????public?string?ID
????{
????????get
????????{
????????????return?id;
????????}
????????set
????????{
????????????id?=?value;
????????}
????}
????public?string?Title
????{
????????get
????????{
????????????return?title;
????????}
????????set
????????{
????????????title?=?value;
????????}
????}
????public?int?OrderBy
????{
????????get
????????{
????????????return?orderby;
????????}
????????set
????????{
????????????orderby?=?value;
????????}
????}
????#region?IComparable<Post>?成員
????public?int?CompareTo(Post?other)
????{
????????return?(?orderby-?other.orderby);
????}
????#endregion
}
讓類繼承IComparable接口,并且實(shí)現(xiàn)接口,在實(shí)現(xiàn)接口方法中設(shè)置為順序排序
?
#region?IComparable<Post>?成員????public?int?CompareTo(Post?other)
????{
????????return?(?orderby-?other.orderby);
????}
??#endregion
?
倒序可以設(shè)置為
?
#region?IComparable<Post>?成員????public?int?CompareTo(Post?other)
????{
????????return?(?other.orderby-?orderby);
????}
????#endregion
?
默認(rèn)實(shí)現(xiàn)泛型類型排序可以是使用List<T>.Sort()比如
?
代碼 ???????List<Post>?posts?=?new?List<Post>();????????for?(int?i?=?0;?i?<?10;?i++)
????????{
????????????Post?post?=?new?Post();
????????????post.ID?=?i.ToString();
????????????post.Title?=?"哈哈";
????????????post.OrderBy?=?i;
????????????posts.Add(post);
????????}
????????//排序
????????posts.Sort();
????????foreach?(Post?p?in?posts)
????????{
????????????Response.Write(p.ID?+?"<br>");
????????}
?
我們可以看到輸出的結(jié)果
0
1
.
.
.
10
如果我們其它屬性排序比如ID,TITLE則如何實(shí)現(xiàn)?
?
代碼 List<Post>?posts?=?new?List<Post>();????????for?(int?i?=?0;?i?<?10;?i++)
????????{
????????????Post?post?=?new?Post();
????????????post.ID?=?i.ToString();
????????????post.Title?=?"哈哈";
????????????post.OrderBy?=?i;
????????????posts.Add(post);
????????}
????????//排序
????????//posts.Sort();
????????posts.Sort(delegate(Post?p1,?Post?p2)
????????????{
????????????????return?p2.ID.CompareTo(p1.ID);
????????????}
????????);
????????foreach?(Post?p?in?posts)
????????{
????????????Response.Write(p.ID?+?"<br>");
????????}
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/nosnowwolf/archive/2006/11/13/559173.html
總結(jié)
以上是生活随笔為你收集整理的泛型实现List(ListT)排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SQL Server数据库被置疑的解决方
- 下一篇: 【译】CodeIgniter HMVC模