欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

1.第一個(gè)例子

定義代碼

#region Array數(shù)組排序1
public class Pigeon : IComparable<Pigeon>
//類(lèi)元素本身繼承比較接口
{
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ù)組元素類(lèi)
{
public string BatchNo { get; set; }
}
public enum CompareType   //比較類(lèi)型枚舉
{
ThreeChar =0,
FourChar=1
}
public class MyBatchCompare:IComparer<MyBatch>
//定義了一個(gè)比較類(lèi)
{
private CompareType compareType;//定義排序類(lèi)型
public MyBatchCompare(CompareType compareType)
{
  //構(gòu)造函數(shù)中初始化比較類(lèi)型
  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("比較類(lèi)型參數(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)文章

  • WPF如何利用附加屬性修改ShowGridLines效果詳解

    WPF如何利用附加屬性修改ShowGridLines效果詳解

    這篇文章主要給大家介紹了關(guān)于WPF如何利用附加屬性修改ShowGridLines效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2018-04-04
  • c# 托盤(pán)雙擊不觸發(fā)單擊事件的實(shí)現(xiàn)方法

    c# 托盤(pán)雙擊不觸發(fā)單擊事件的實(shí)現(xiàn)方法

    在開(kāi)發(fā)winform的時(shí)候我發(fā)現(xiàn),當(dāng)執(zhí)行雙擊操作(notifyIcon1_MouseDoubleClick)時(shí),會(huì)同時(shí)伴隨著單擊事件(notifyIcon1_MouseClick)的發(fā)生。。那如何才能使雙擊事件不觸發(fā)單擊事件呢?
    2009-02-02
  • C#利用Openxml讀取Excel數(shù)據(jù)實(shí)例

    C#利用Openxml讀取Excel數(shù)據(jù)實(shí)例

    這篇文章主要介紹了C#利用Openxml讀取Excel數(shù)據(jù)的方法,包括使用中的注意點(diǎn)分析及疑難探討,需要的朋友可以參考下
    2014-09-09
  • C#中+=是什么意思及+=的用法

    C#中+=是什么意思及+=的用法

    這篇文章主要介紹了C#中+=是什么意思及+=的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C# 使用 WebBrowser 實(shí)現(xiàn) HTML 轉(zhuǎn)圖片功能的示例代碼

    C# 使用 WebBrowser 實(shí)現(xiàn) HTML 轉(zhuǎn)圖片功能的示例代碼

    這篇文章主要介紹了C# 如何使用 WebBrowser 實(shí)現(xiàn) HTML 轉(zhuǎn)圖片功能,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C# Linq讀取XML文件的實(shí)例

    C# Linq讀取XML文件的實(shí)例

    C# Linq讀取XML文件的實(shí)例,需要的朋友可以參考一下
    2013-05-05
  • C#如何動(dòng)態(tài)設(shè)置屏幕分辨率

    C#如何動(dòng)態(tài)設(shè)置屏幕分辨率

    這篇文章主要為大家詳細(xì)介紹了C#動(dòng)態(tài)設(shè)置屏幕分辨率的方法,我們可以使用Screen類(lèi)設(shè)置屏幕分辨率,感興趣的小伙伴們可以參考一下
    2016-04-04
  • C#實(shí)現(xiàn)用棧求逆序的方法示例

    C#實(shí)現(xiàn)用棧求逆序的方法示例

    這篇文章主要介紹了C#實(shí)現(xiàn)用棧求逆序的方法,涉及C#數(shù)據(jù)結(jié)構(gòu)中棧的壓入與取出相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • winform創(chuàng)建不規(guī)則窗體的方法

    winform創(chuàng)建不規(guī)則窗體的方法

    這篇文章主要介紹了winform創(chuàng)建不規(guī)則窗體的方法,涉及C#窗體創(chuàng)建的相關(guān)參數(shù)設(shè)置技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-09-09
  • LZW壓縮算法 C#源碼

    LZW壓縮算法 C#源碼

    本文分享了一個(gè)LZW壓縮算法的C#源碼,有需要的朋友可以參考一下。
    2016-06-06

最新評(píng)論