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

C#入門教程之集合ArrayList用法詳解

 更新時間:2017年06月19日 10:29:36   作者:傻丫頭與科技  
這篇文章主要介紹了C#入門教程之集合ArrayList用法,結(jié)合具體實例分析了C#中集合的概念、功能、創(chuàng)建與使用方法,需要的朋友可以參考下

本文實例講述了C#入門教程之集合ArrayList用法。分享給大家供大家參考,具體如下:

.NET Framework提供了用于數(shù)據(jù)存儲和檢索的專用類,這些類統(tǒng)稱集合。這些類提供對堆棧、隊列、列表和哈希表的支持。大多數(shù)集合類實現(xiàn)系統(tǒng)的接口。下面我們主要來講一下ArrayList。

ArrayList是命名空間Systrm.Collections下的一部分,它是使用大小可按需動態(tài)增加的數(shù)組實現(xiàn)IList接口。

ArrayList的容量是ArrayList可以保存的元素數(shù)。ArrayList的默認(rèn)初始容量為0.隨著元素添加到ArrayList中,容量會根據(jù)需要通過重新分配自動增加。使用證書索引可以訪問此集合中的元素。此集合中的索引從零開始。

下面我們先來看一個例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace 集合{
  //動物類
  public abstract class Animal
  {
    protected string name;   //動物的名字
    public string Name
    {
      get { return name; }
      set { name = value; }
    }
    public Animal()
    {
      name="The animal with no name";
    }
    public Animal(string newName)
    {
      name=newName;
    }
    public void Feed()   //繁殖后代
    {
      Console.WriteLine("{0} has been fed.",name);
    }
  }
  //奶牛類
  public class Cow : Animal
  {
    public Cow(string newName): base(newName)
    { }
    public void Milk()   //產(chǎn)牛奶
    {
      Console.WriteLine("{0} has been milked.", name);
    }
  }
  //母雞類
  public class Chicken : Animal
  {
    public Chicken(string newName):base(newName)
    { }
    public void LayEgg()  //下蛋
    {
      Console.WriteLine("{0} has laid an egg.", name);
    }
  }
  class Program
  {
    static void Main(string[] args)
    {
      //用數(shù)組的方法實現(xiàn)
      Console.WriteLine("Create an Array type collection of Animal object and use it:");
      Animal[] animalArray = new Animal[2];
      Cow myCow1 = new Cow("Deirdre");
      animalArray[0] = myCow1;
      animalArray[1] = new Chicken("Ken");
      foreach (Animal myAnimal in animalArray )
      {
        Console.WriteLine("New {0} object added to Array collection,Name={1}", myAnimal.ToString(), myAnimal.Name);
      }
      Console.WriteLine("Array collection contains {0} objects.",animalArray .Length );
      animalArray[0].Feed();
      ((Chicken)animalArray[1]).LayEgg();
      Console.WriteLine();
      //用集合的方法實現(xiàn)
      Console.WriteLine("Create an ArrayList type collection of Animal objects and use it;");
      ArrayList animalArrayList = new ArrayList();
      Cow myCow2 = new Cow("HayLey");
      animalArrayList.Add(myCow2);
      animalArrayList.Add(new Chicken("Roy"));
      foreach (Animal myAnimal in animalArrayList)
      {
        Console.WriteLine("New {0} object added to ArrayList collection,Name={1}", myAnimal.ToString(), myAnimal.Name);
      }
      Console.WriteLine("ArrayList collection contains {0} objects.", animalArrayList.Count);
      ((Animal)animalArrayList[0]).Feed();
      ((Chicken)animalArrayList[1]).LayEgg();
      Console.WriteLine();
    }
  }
}

集合的創(chuàng)建

對于簡單的數(shù)組來說,只有用固定的大小來初始化數(shù)組,才能使用它。

Animal[] animalArray = new Aimal[2];

而ArrayList集合不需要初始化其大小

ArrayList animalArrayList = new ArrayList();

這個類還有另外兩個構(gòu)造函數(shù)。第一個構(gòu)造函數(shù)把現(xiàn)有的集合作為一個參數(shù),把現(xiàn)有集合的內(nèi)容復(fù)制到新實例中;而另一個構(gòu)造函數(shù)通過一個參數(shù)設(shè)置集合的容量(capacity)。這個容量用一個int值指定,設(shè)置集合中可以包含的初始項數(shù)。但這并不是真實的容量,因為如果集合中的項數(shù)超過了這個值,容量就會自動增加一倍。

對于ArrayList集合,它沒有現(xiàn)成的項,也沒有null引用的項。我們使用ArrayList對象的Add()方法添加新項:

Cow myCow2 = new Cow("Hayley");
anmialArrayList.Add(myCow2);
anmialArrayList.Add(new Chicken("Roy"));

ArrayList對象支持IEnumerable接口,這個接口的唯一方法GetEnuumerator()可以迭代集合中的各項。所以可以與foreach一起使用

foreach (Animal myAnimal in animalArrayList)
{
  Console.WriteLine("New {0} object added to ArrayList collection,Name = {1}",myAnimal.Tostring(),myAnimal.Name);
}

ArrayList集合是System.Object對象的集合(通過多態(tài)性賦給Animal對象),所以必須用所有的項進行數(shù)據(jù)類型轉(zhuǎn)換:

((Animal)animalArrayList[0]).Feed();
((Chichen)animalArrayList[1]).LayEgg();

我們可以使用Remove()和RemoveAt()方法刪除項,這兩個方法是在ArrayList類中實現(xiàn)的IList接口的一部分。它們分別根據(jù)項的引用或索引從集合中刪除項:

animalArrayList.RemoveAt(0);
animalArrayList.Remove(myCow2);

ArrayList集合可以用AddRange()方法一次添加好幾個項。這個方法接受帶有ICollection接口的任何對象,包括數(shù)組:

animalArrayList.AddRange(animalArray);

AddRange()方法不是ArrayList提供的任何接口的一部分。這個方法專用于ArrayList類,

更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#字符串操作技巧總結(jié)》、《C#數(shù)組操作技巧總結(jié)》、《C#中XML文件操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》及《C#面向?qū)ο蟪绦蛟O(shè)計入門教程

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

相關(guān)文章

  • C#使用NUnit進行單元測試詳解

    C#使用NUnit進行單元測試詳解

    NUnit是一個開源的.Net單元測試框架,經(jīng)常被用來在.Net體系下做白盒測試,本文主要為大家詳細(xì)介紹了如何C#如何使用NUnit進行單元測試,感興趣的可以了解下
    2023-12-12
  • C#實現(xiàn)為視頻添加水印

    C#實現(xiàn)為視頻添加水印

    這篇文章主要為大家詳細(xì)介紹了C#如何使用ffmpeg命令,分別實現(xiàn)給視頻添加圖片水印以及文字水印,文中的示例代講解詳細(xì),感興趣的可以了解一下
    2023-01-01
  • 分享WCF聊天程序--WCFChat實現(xiàn)代碼

    分享WCF聊天程序--WCFChat實現(xiàn)代碼

    無意中在一個國外的站點下到了一個利用WCF實現(xiàn)聊天的程序,作者是:Nikola Paljetak。研究了一下,自己做了測試和部分修改,感覺還不錯,分享給大家
    2015-11-11
  • C#實現(xiàn)Windows服務(wù)安裝卸載開啟停止

    C#實現(xiàn)Windows服務(wù)安裝卸載開啟停止

    本文主要介紹了C#實現(xiàn)Windows服務(wù)安裝卸載開啟停止,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • C#算法之大牛生小牛的問題高效解決方法

    C#算法之大牛生小牛的問題高效解決方法

    本文主要介紹兩種方法處理大牛生小牛的問題,第二種效率更高,希望能給大家一個參考。
    2016-06-06
  • C#中使用Interlocked進行原子操作的技巧

    C#中使用Interlocked進行原子操作的技巧

    使用.NET提供的Interlocked類可以對一些數(shù)據(jù)進行原子操作,看起來似乎跟lock鎖一樣,但它并不是lock鎖,它的原子操作是基于CPU本身的,非阻塞的,所以要比lock的效率高
    2016-12-12
  • C#中Thread(線程)和Task(任務(wù))實例詳解

    C#中Thread(線程)和Task(任務(wù))實例詳解

    .NET Framework在System.Threading命名空間中具有與線程相關(guān)的類,線程是一小組可執(zhí)行指令,這篇文章主要給大家介紹了關(guān)于C#中Thread(線程)和Task(任務(wù))的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 詳解C#設(shè)置Excel數(shù)據(jù)自適應(yīng)行高、列寬的2種情況

    詳解C#設(shè)置Excel數(shù)據(jù)自適應(yīng)行高、列寬的2種情況

    這篇文章主要介紹了C#設(shè)置Excel數(shù)據(jù)自適應(yīng)行高、列寬的2種情況,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • c# 屏蔽快捷鍵的實現(xiàn)示例

    c# 屏蔽快捷鍵的實現(xiàn)示例

    這篇文章主要介紹了c# 屏蔽快捷鍵的實現(xiàn)示例,幫助大家更好的理解和利用c#進行桌面開發(fā),感興趣的朋友可以了解下
    2021-03-03
  • C#使用NPOI將excel導(dǎo)入到list的方法

    C#使用NPOI將excel導(dǎo)入到list的方法

    這篇文章主要為大家詳細(xì)介紹了C#使用NPOI將excel導(dǎo)入到list的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評論

武冈市| 卢氏县| 岚皋县| 保靖县| 大安市| 绥阳县| 城步| 汤阴县| 西林县| 五河县| 营山县| 辽阳市| 芷江| 仙居县| 芷江| 阜南县| 古蔺县| 汤原县| 绥阳县| 砚山县| 日土县| 昌黎县| 辽源市| 安远县| 茂名市| 静海县| 北票市| 句容市| 博白县| 京山县| 科技| 佳木斯市| 冀州市| 兖州市| 安徽省| 镇江市| 庆安县| 奇台县| 大同市| 通榆县| 太保市|