成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談C#中的集合對象(Collections)

開發 后端
本文將介紹微軟C#編程中的集合對象(Collections),在.NET Framework里,集合有很多,如List<T>和ArrayList是與數組相當的集合類。還有其他類型的集合:隊列、棧、鏈表和字典。本文將介紹的是其中的一些常用部分。

記得教科書上有這樣一句話:"如果需要使用同一類型的多個對象,就可以使用集合和數組。" ,是的,沒有錯.只是數組的大小是固定的。如果元素個數是動態的,就應使用集合類。在.NET Framework里,集合有很多,如List和ArrayList是與數組相當的集合類。還有其他類型的集合:隊列、棧、鏈表和字典。本文不會對這些集合對象作詳細的介紹,只是把常用的集合對象拿出來討論一下。

1.數組

在實際應用中,數組又可分為:簡單數組、多維數組、鋸齒數組、Array數組.使用最多的應該算的簡單數組和多維數組,這里我以簡單數組為例簡單介紹下數組的簡單使用,關于的其他知識點請大家參考相關資料和書籍.

比如說我們要定義一個整型的簡單數組,那應該怎么定義呢?

classProgram
{
  staticvoidMain(string[]args)
  {
    int[]users=newint[5];
    users[0]=10;
    users[1]=20;
    //
  }
}

是上面這樣定義和使用的嗎?我想稍微學過編程的朋友都可以給出肯定的答案.關于這點我不想作過多的解釋.見下圖:

這里我們是使用的基本類型(int)類型來定義的數組,在使用開發中我們還會使用到自定義類型數組,下面我就簡單的說說這方面的知識.要定義自定義類型數組,那么首先就應該有個自定義類型,當然這個類型可以封其他的相關屬性.OK,如下代碼段:

///
///自定義類型User,內部封裝了一個屬性name.
///

publicclassUser
{
  privatestringname;
  publicstringName
  {
    get{returnname;}
    set{name=value;}
  }
}

如上就是一個自定義的類型,我們在其內部封裝了一個name屬性.那么,類型已經定義好,那我們應該如何去使用這個自定義類型去定義一個數組呢?是這樣的嗎?

classProgram
{
  staticvoidMain(string[]args)
  {
    User[]user=newUser[2]; //定義User類型的數組
    Useru=newUser();
    u.Name="Beniao";
    user[0]=u;
    Console.WriteLine(user[0].Name);
  }
}

如上我們就完成了一個自定義類型的對象數組的定義,以及數組的相關操作.見下圖:

由于多維數組、鋸齒數組、Array數組等數組在實際的開發中使用不是很多,這里就不作介紹.

2.集合對象

集合類可以組合為集合,存儲Object類型的元素和泛型集合類。在.NET 2.0之前,不存在泛型?,F在泛型集合類通常是集合的首選類型。泛型集合類是類型安全的,如果使用值類型,是不需要裝箱操作的。如果要在集合中添加不同類型的對象,且這些對象不是相互派生的,例如在集合中添加int和string對象,就只需基于對象的集合類。

象類型的集合位于System.Collections命名空間;泛型集合類位于System.Collections. Generic命名空間;當然,組合集合類還有其他方式。集合可以根據集合類執行的接口組合為列表、集合和字典。接口及其功能如表10-1所示。.NET 2.0為集合類添加了新的泛型接口,例如IEnumerable和IList。這些接口的非泛型版本將一個對象定義為方法的參數,而其泛型版本使用泛型類型T。

(1)列表

.NET Framework為動態列表提供了類ArrayList和List。System.Collections.Generic命名空間中的類List的用法非常類似于System.Collections命名空間中的ArrayList類。這個類實現了IList、ICollection和IEnumerable接口。如下代碼段:

classProgram
{
  staticvoidMain(string[]args)
  {
    //創建列表
    ArrayListlist=newArrayList();
    //添加元素
    list.Add("張三");
    //插入元素
    list.Insert(1,"李四");
    //訪問元素
    stringname=list[0].ToString();
    //刪除元素
    list.RemoveAt(1);//刪除索引號為1的元素|Remove(Objectobj);
    //檢索元素
    intindex=list.IndexOf("張三"); //得到對象所在的下標
    //排序元素
    list.Sort(); //有多種重載

    Listl=newList(); //創建列表
    l.Add(1);            //添加元素
    l.Add(7);
    l.Add(3);
    l.Add(9);
    l.Add(6);
    l.Add(10);
    l.Sort();
    foreach(int iinl)
    {
      Console.Write(i+"");
    }

    l.Remove(10); //刪除值為10的元素
  }
}

關于列表的算法可以參考我以前寫過的一篇文章,文章連接:列表算法

(2)隊列

隊列是其元素以先進先出(FIFO)的方式來處理的集合。先放在隊列中的元素會先讀取??山Y合下圖來理解:

在.NET的System.Collections命名空間中有非泛型類Queue,在System.Collections. Generic命名空間中有泛型類Queue。這兩個類的功能非常類似,但泛型類是強類型化的,定義了類型T,而非泛型類基于Object類型。

在創建隊列時,可以使用與List類型類似的構造函數。默認的構造函數會創建一個空隊列,也可以使用構造函數指定容量。在把元素添加到隊列中時,容量會遞增,包含4、8、16和32個元素。與List類型類似,隊列的容量也總是根據需要成倍增加。非泛型類Queue的默認構造函數與此不同,它會創建一個包含32項的空數組。

不過一般項目中用得不是很多,這里故不做示例代碼.

【編輯推薦】

  1. C#3.0中自動屬性和對象初始化器
  2. 簡述用C#實現優先隊列方法
  3. C#中的Adapter設計模式淺析
責任編輯:彭凡 來源: ITPUB
相關推薦

2009-08-18 09:06:41

C#對象和集合

2025-03-19 07:48:07

C# 13params參數

2009-08-26 15:28:52

C#對象集合初始化器

2009-08-12 11:24:25

C# String對象

2009-08-31 09:37:09

C# Employee

2009-08-19 17:12:18

C# Connecti

2009-09-02 15:41:21

C# HTTPWebR

2009-08-03 15:06:43

C# Stack對象C# Queue對象

2009-09-02 16:36:37

C#調用Excel對象

2012-03-14 10:48:05

C#

2009-07-31 17:51:27

C#對象初始化

2009-07-31 13:48:34

C# eval()函數

2009-02-05 15:32:23

接口委托

2009-08-20 18:30:33

C# ReaderWr

2011-09-21 10:56:31

C#結構

2009-09-17 17:13:54

C#數組

2009-08-14 10:51:43

2009-06-24 10:49:16

JavaScript

2009-08-07 11:26:53

C#數組結構

2009-08-26 13:15:38

C#選擇控制
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产91精品久久久久久久网曝门 | 超级黄色一级片 | 久久久精品综合 | 影音先锋中文字幕在线观看 | 欧美三区视频 | 久久久福利 | 91五月天 | 成人一级视频在线观看 | 一级毛片视频 | 日韩精品一区二区三区在线观看 | a级免费视频 | 国产欧美精品在线 | h片在线观看网站 | 免费的av| 人人玩人人添人人澡欧美 | 九九热精品视频 | 精品久久久久久久久亚洲 | 一区二区三区四区国产 | 黄视频欧美 | 日本特黄a级高清免费大片 国产精品久久性 | 国产亚洲欧美在线 | 欧美黑人一级爽快片淫片高清 | 亚洲精品福利在线 | 国产一区二区在线免费观看 | 国产不卡视频 | 亚洲精品国产电影 | 亚洲精彩视频 | 久久久久国产精品 | 国产电影一区二区在线观看 | 欧美高清视频在线观看 | 日本一区二区影视 | 91porn成人精品 | 91免费观看 | 国产日韩视频在线 | 国产一区二区久久久 | 成人免费淫片aa视频免费 | 久久丁香 | 成人污污视频 | 婷婷色在线播放 | 九九爱这里只有精品 | 亚洲成人午夜电影 |