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

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

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

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

1.第一個(gè)例子

定義代碼

#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ù)為空");
  //按第三個(gè)字符比較
  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

測(cè)試代碼

#region 測(cè)試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.第二個(gè)例子

定義代碼

#region Array數(shù)組排序
public class MyBatch   //數(shù)組元素類
{
public string BatchNo { get; set; }
}
public enum CompareType   //比較類型枚舉
{
ThreeChar =0,
FourChar=1
}
public class MyBatchCompare:IComparer<MyBatch>
//定義了一個(gè)比較類
{
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:
   //按第三個(gè)字符比較從小到大排序
   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:
   //按第四個(gè)字符比較從小到大排序
   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ù)錯(cuò)誤");
  }
}
}
#endregion

測(cè)試代碼

#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"}
    };
  //按第三個(gè)字符從小到大排
  Array.Sort(batchs,new MyBatchCompare(CompareType.ThreeChar));
  string ResultMsg = "";
  foreach (MyBatch o in batchs)
  {
 ResultMsg += o.BatchNo + "\r\n";
  }
  MessageBox.Show(ResultMsg);
  //按第四個(gè)字符從小到大排序
  Array.Sort(batchs, new MyBatchCompare(CompareType.FourChar));
  ResultMsg = "";
  foreach (MyBatch o in batchs)
  {
 ResultMsg += o.BatchNo + "\r\n";
  }
  MessageBox.Show(ResultMsg);
}
#endregion

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    Unity3d 如何更改Button的背景色

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

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

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

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

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

    C#中Mutex對(duì)象用法分析

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

最新評(píng)論

龙山县| 遂川县| 南宫市| 德安县| 疏勒县| 仪征市| 紫云| 阿拉善左旗| 杂多县| 湄潭县| 巫溪县| 平乐县| 新龙县| 舒城县| 涞水县| 房产| 花莲县| 渭源县| 奎屯市| 嘉义县| 邓州市| 郴州市| 英德市| 通山县| 上蔡县| 龙江县| 晴隆县| 桦川县| 商河县| 柯坪县| 富顺县| 镇安县| 庆云县| 车险| 黑龙江省| 宁强县| 闸北区| 东阿县| 宝丰县| 洛浦县| 化德县|