最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#通過IComparable實現(xiàn)ListT.sort()排序

 更新時間:2014年09月24日 10:48:12   投稿:shichen2014  
這篇文章主要介紹了C#通過IComparable實現(xiàn)ListT.sort()排序的方法,可實現(xiàn)自定義的排序方法,是非常實用的技巧,需要的朋友可以參考下

本文實例講述了C#通過IComparable實現(xiàn)ListT.sort()排序的方法,分享給大家供大家參考之用。具體方法如下:

通常來說,List<T>.sort()可以實現(xiàn)對T的排序,比如List<int>.sort()執(zhí)行后集合會按照int從小到大排序。如果T是一個自定義的Object,可是我們想按照自己的方式來排序,那該怎么辦呢,其實可以用過IComparable接口重寫CompareTo方法來實現(xiàn)。流程如下:

一、第一步我們申明一個類Person但是要繼承IComparable接口:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace TestIComparable
{
  public class Person : IComparable<Person>
  {
    public string Name { get; set; }
 
    public int Age { get; set; }
 
    public int CompareTo(Person obj)
    {
      int result;
      if (this.Name == obj.Name && this.Age == obj.Age)
      {
        result = 0;
      }
      else
      {
        if (this.Name.CompareTo(obj.Name) > 0)
        {
          result = 1;
        }
        else if (this.Name == obj.Name && this.Age > obj.Age)
        {
          result = 1;
        }
        else
        {
          result = -1;
        }
      }
 
      return result;
    }
 
    public override string ToString()
    {
      return this.Name + "-" + this.Age;
    }
  }
}

二、然后在主函數(shù)里面調用sort方法即可.類就會按照姓名從小到大,如果姓名相同則按照年齡從小到大排序了。

public class Program
{
  public static void Main(string[] args)
  {
    List<Person> lstPerson = new List<Person>();
    lstPerson.Add(new Person(){ Name="Bob",Age=19});
    lstPerson.Add(new Person(){ Name="Mary",Age=18});
    lstPerson.Add(new Person() { Name = "Mary", Age = 17 });
    lstPerson.Add(new Person(){ Name="Lily",Age=20});
    lstPerson.Sort();
    Console.ReadKey();
  }
}

三、如果不繼承IComparable接口,我們該如何實現(xiàn)排序呢??梢允褂肔inq來實現(xiàn)。其實效果是一樣的,只是如果類的集合要經(jīng)常排序的話,建議使用繼承接口的方法,這樣可以簡化sort的代碼,而且更容易讓人看懂。

public static void Main(string[] args)
{
  List<Person> lstPerson = new List<Person>();
  lstPerson.Add(new Person(){ Name="Bob",Age=19});
  lstPerson.Add(new Person(){ Name="Mary",Age=18});
  lstPerson.Add(new Person() { Name = "Mary", Age = 17 });
  lstPerson.Add(new Person(){ Name="Lily",Age=20});

  lstPerson.Sort((x,y) =>
  {
 int result;
 if (x.Name == y.Name && x.Age == y.Age)
 {
   result = 0;
 }
 else
 {
   if (x.Name.CompareTo(y.Name) > 0)
   {
 result = 1;
   }
   else if (x.Name == y.Name && x.Age > y.Age)
   {
 result = 1;
   }
   else
   {
 result = -1;
   }
 }

 return result;
  });
  Console.ReadKey();
}

希望本文所述對大家的C#程序設計有所幫助。

相關文章

  • C#實現(xiàn)在PDF文檔中應用多種不同字體

    C#實現(xiàn)在PDF文檔中應用多種不同字體

    在PDF文檔中,可繪制不同字體樣式、不同語言的文字,可通過使用Standard字體、TrueType字體、CJK字體或者自定義(私有)等字體類型。本文將具體介紹實現(xiàn)的方法,需要的可以參考一下
    2022-01-01
  • Unity實現(xiàn)車型識別的示例代碼

    Unity實現(xiàn)車型識別的示例代碼

    這篇文章主要介紹了在Unity中接入百度AI,實現(xiàn)檢測一張車輛圖片的具體車型。即對于輸入的一張圖片(可正常解碼,且長寬比適宜),輸出圖片的車輛品牌及型號。需要的可以參考一下
    2022-01-01
  • C#實現(xiàn)簡單合并word文檔的方法

    C#實現(xiàn)簡單合并word文檔的方法

    這篇文章主要介紹了C#實現(xiàn)簡單合并word文檔的方法,涉及C#針對word文檔的讀取、插入、保存等技巧,非常具有實用價值,需要的朋友可以參考下
    2015-09-09
  • WPF/Silverlight實現(xiàn)圖片局部放大的方法分析

    WPF/Silverlight實現(xiàn)圖片局部放大的方法分析

    這篇文章主要介紹了WPF/Silverlight實現(xiàn)圖片局部放大的方法,結合實例形式分析了WPF/Silverlight針對圖片屬性操作相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-03-03
  • C#實現(xiàn)基于任務的異步編程模式

    C#實現(xiàn)基于任務的異步編程模式

    本文詳細講解了C#實現(xiàn)基于任務的異步編程模式,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#中屬性和成員變量的區(qū)別說明

    C#中屬性和成員變量的區(qū)別說明

    本篇文章主要是對C#中屬性和成員變量的區(qū)別進行了介紹說明。需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • 深入解析C#中的泛型類與泛型接口

    深入解析C#中的泛型類與泛型接口

    這篇文章主要介紹了C#中的泛型類與泛型接口,對泛型的支持是C#語言的重要特性,需要的朋友可以參考下
    2016-02-02
  • C# Winform 禁止用戶調整ListView的列寬

    C# Winform 禁止用戶調整ListView的列寬

    在使用 ListView 的時候, 有時我們不想讓別人隨意調整列寬, 或者某幾列的列寬, 以便達到美觀, 或者隱藏數(shù)據(jù)的作用. 那么可以用一下代碼來實現(xiàn)
    2011-05-05
  • C#數(shù)組應用分析

    C#數(shù)組應用分析

    C#數(shù)組應用分析...
    2007-08-08
  • 基于C#實現(xiàn)宿舍管理系統(tǒng)

    基于C#實現(xiàn)宿舍管理系統(tǒng)

    這篇文章主要介紹了如何利用C#語言開發(fā)一個簡易的宿舍管理系統(tǒng),文中的實現(xiàn)步驟講解詳細,對我們學習C#有一定參考價值,感興趣的可以了解一下
    2022-06-06

最新評論

原阳县| 玉门市| 新干县| 长白| 宜丰县| 北海市| 延长县| 莫力| 陕西省| 竹北市| 永仁县| 江城| 富顺县| 华蓥市| 临泉县| 景泰县| 灵台县| 定襄县| 安吉县| 开阳县| 松潘县| 尼木县| 彭水| 马公市| 墨竹工卡县| 洞口县| 平顺县| 南通市| 贵定县| 镇远县| 泾源县| 红安县| 独山县| 白玉县| 清涧县| 武穴市| 武宣县| 子长县| 育儿| 铜山县| 潍坊市|