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

C#數(shù)組排序的兩種常用方法

 更新時間:2015年05月15日 11:17:41   作者:永遠愛好寫程序  
這篇文章主要介紹了C#數(shù)組排序的兩種常用方法,實例分析了C#操作數(shù)組的相關(guān)技巧,需要的朋友可以參考下

本文實例講述了C#數(shù)組排序的兩種常用方法。分享給大家供大家參考。具體如下:

1.第一個例子

定義代碼

#region Array數(shù)組排序1
public class Pigeon : IComparable<Pigeon>
//類元素本身繼承比較接口
{
int XValue;
int YValue;
public string BatchNo { get; set; }
public int CompareTo(Pigeon other)
{
  if (other == null)
 throw new ArgumentNullException("比較參數(shù)為空");
  //按第三個字符比較
  XValue = Convert.ToInt32(this.BatchNo.Substring(2, 1));
  YValue = Convert.ToInt32(other.BatchNo.Substring(2, 1));
  if (XValue == YValue)
  {
 return 0;
  }
  else if (XValue < YValue)
  {
 return -1;   //返回-1,X排在Y的前面
  }
  else
  {
 return 1;    //返回1,X排在Y的后面
  }
}
}
#endregion

測試代碼

#region 測試Array數(shù)組排序1
private void button3_Click(object sender, EventArgs e)
{
  Pigeon[] pigeons = new Pigeon[]{
 new Pigeon(){BatchNo="1256"},
 new Pigeon(){BatchNo="1236"},
 new Pigeon(){BatchNo="1276"},
 new Pigeon(){BatchNo="1216"}
  };
  Array.Sort(pigeons);
  string ResultMsg = "";
  foreach (Pigeon o in pigeons)
  {
 ResultMsg += o.BatchNo + "\r\n";
  }
  MessageBox.Show(ResultMsg);
}
#endregion

1.第二個例子

定義代碼

#region Array數(shù)組排序
public class MyBatch   //數(shù)組元素類
{
public string BatchNo { get; set; }
}
public enum CompareType   //比較類型枚舉
{
ThreeChar =0,
FourChar=1
}
public class MyBatchCompare:IComparer<MyBatch>
//定義了一個比較類
{
private CompareType compareType;//定義排序類型
public MyBatchCompare(CompareType compareType)
{
  //構(gòu)造函數(shù)中初始化比較類型
  this.compareType = compareType;
}
public int Compare(MyBatch x, MyBatch y)
{
  int XValue;
  int YValue;
  if (x == null) throw new ArgumentNullException("x值為空");
  if (y == null) throw new ArgumentNullException("y值為空");
  switch (compareType)
  {          
 case CompareType.ThreeChar:
   //按第三個字符比較從小到大排序
   XValue = Convert.ToInt32(x.BatchNo.Substring(2,1));
   YValue = Convert.ToInt32(y.BatchNo.Substring(2,1));
   if (XValue == YValue)
   {
 return 0;
   }
   else if (XValue < YValue)
   {
 return -1;   //返回-1,X排在Y的前面
   }
   else
   {
 return 1;    //返回1,X排在Y的后面
   }
 case CompareType.FourChar:
   //按第四個字符比較從小到大排序
   XValue = Convert.ToInt32(x.BatchNo.Substring(3,1));
   YValue = Convert.ToInt32(y.BatchNo.Substring(3,1));
   if (XValue == YValue)
   {
 return 0;
   }
   else if (XValue < YValue)
   {
 return -1;   //返回-1,X排在Y的前面
   }
   else
   {
 return 1;    //返回1,X排在Y的后面
   }
 default:
   throw new ArgumentException("比較類型參數(shù)錯誤");
  }
}
}
#endregion

測試代碼

#region Array數(shù)組排序
private void button2_Click(object sender, EventArgs e)
{
  MyBatch[] batchs ={
   new MyBatch(){BatchNo="1234"},
   new MyBatch(){BatchNo="1263"},
   new MyBatch(){BatchNo="1218"},
   new MyBatch(){BatchNo="1242"}
    };
  //按第三個字符從小到大排
  Array.Sort(batchs,new MyBatchCompare(CompareType.ThreeChar));
  string ResultMsg = "";
  foreach (MyBatch o in batchs)
  {
 ResultMsg += o.BatchNo + "\r\n";
  }
  MessageBox.Show(ResultMsg);
  //按第四個字符從小到大排序
  Array.Sort(batchs, new MyBatchCompare(CompareType.FourChar));
  ResultMsg = "";
  foreach (MyBatch o in batchs)
  {
 ResultMsg += o.BatchNo + "\r\n";
  }
  MessageBox.Show(ResultMsg);
}
#endregion

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

相關(guān)文章

  • C#?使用EntityFramework?CodeFirst?創(chuàng)建PostgreSQL數(shù)據(jù)庫的詳細過程

    C#?使用EntityFramework?CodeFirst?創(chuàng)建PostgreSQL數(shù)據(jù)庫的詳細過程

    這篇文章主要介紹了C#使用EntityFramework?CodeFirst創(chuàng)建PostgreSQL數(shù)據(jù)庫的過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • C# 用什么方法將BitConverter.ToString產(chǎn)生字符串再轉(zhuǎn)換回去

    C# 用什么方法將BitConverter.ToString產(chǎn)生字符串再轉(zhuǎn)換回去

    這篇文章主要介紹了C# 用什么方法將BitConverter.ToString產(chǎn)生字符串再轉(zhuǎn)換回去,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • C# WebApi 接口返回值不困惑:返回值類型詳解

    C# WebApi 接口返回值不困惑:返回值類型詳解

    這篇文章主要介紹了C# WebApi 接口返回值不困惑:返回值類型詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • WPF TextBox實現(xiàn)按字節(jié)長度限制輸入功能

    WPF TextBox實現(xiàn)按字節(jié)長度限制輸入功能

    這篇文章主要為大家詳細介紹了WPF TextBox實現(xiàn)按字節(jié)長度限制輸入功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • C#創(chuàng)建WebService接口并連接的全過程

    C#創(chuàng)建WebService接口并連接的全過程

    工作時遇到需要請求客戶的接口返回數(shù)據(jù),要求使用WebService,借此機會記錄一下,下面這篇文章主要給大家介紹了關(guān)于C#創(chuàng)建WebService接口并連接的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • WPF中MVVM模式的理解與實現(xiàn)

    WPF中MVVM模式的理解與實現(xiàn)

    MVVM是一種設(shè)計模式,特別適用于WPF(Windows Presentation Foundation)等XAML-based的應(yīng)用程序開發(fā),MVVM模式主要包含三個部分:Model(模型)、View(視圖)和ViewModel(視圖模型),本文給大家介紹了WPF中MVVM模式的理解與實現(xiàn),需要的朋友可以參考下
    2024-05-05
  • Unity3d 如何更改Button的背景色

    Unity3d 如何更改Button的背景色

    這篇文章主要介紹了unity3d GUI.Button 自定義字體大小及透明背景方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C# Windows API應(yīng)用之基于FlashWindowEx實現(xiàn)窗口閃爍的方法

    C# Windows API應(yīng)用之基于FlashWindowEx實現(xiàn)窗口閃爍的方法

    這篇文章主要介紹了C# Windows API應(yīng)用之基于FlashWindowEx實現(xiàn)窗口閃爍的方法,結(jié)合實例形式分析了Windows API函數(shù)FlashWindowEx的功能、定義及實現(xiàn)窗口閃爍的相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • C#/VB.NET實現(xiàn)在PDF文檔中插入,替換或刪除圖片

    C#/VB.NET實現(xiàn)在PDF文檔中插入,替換或刪除圖片

    這篇文章主要為大家詳細介紹了如何使用 Spire.PDF for .NET 通過程序在 PDF 文檔中插入、替換或刪除圖片,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • C#中Mutex對象用法分析

    C#中Mutex對象用法分析

    這篇文章主要介紹了C#中Mutex對象用法,結(jié)合實例形式分析了Mutex對象的功能與線程操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06

最新評論

和平区| 广宁县| 红河县| 徐州市| 武义县| 南陵县| 兰坪| 吉林市| 汤原县| 新竹县| 黄大仙区| 信丰县| 峨眉山市| 罗江县| 新密市| 临猗县| 六枝特区| 如东县| 达日县| 商城县| 巴林右旗| 金川县| 正定县| 凤凰县| 台北县| 抚宁县| 武威市| 杭锦后旗| 行唐县| 隆德县| 达拉特旗| 义乌市| 社旗县| 德格县| 衢州市| 卓资县| 宁蒗| 达日县| 阳朔县| 梧州市| 乌兰察布市|