国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

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

2019-10-29 21:09:19
字體:
來源:轉載
供稿:網友

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

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

ArrayList是命名空間Systrm.Collections下的一部分,它是使用大小可按需動態增加的數組實現IList接口。

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

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

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()   //產牛奶    {      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)    {      //用數組的方法實現      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();      //用集合的方法實現      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();    }  }}

C#,集合,ArrayList

集合的創建

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

Animal[] animalArray = new Aimal[2];

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

ArrayList animalArrayList = new ArrayList();

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

對于ArrayList集合,它沒有現成的項,也沒有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對象的集合(通過多態性賦給Animal對象),所以必須用所有的項進行數據類型轉換:

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

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

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

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

animalArrayList.AddRange(animalArray);

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

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


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂托克前旗| 谷城县| 肃北| 吉安市| 婺源县| 都安| 全南县| 伊金霍洛旗| 彰化市| 土默特右旗| 黄大仙区| 武强县| 林芝县| 昭平县| 博罗县| 新郑市| 澜沧| 彭州市| 太仓市| 青神县| 上栗县| 防城港市| 额尔古纳市| 绥宁县| 江北区| 营山县| 蒙阴县| 三亚市| 图们市| 三原县| 久治县| 凤庆县| 泸州市| 桦甸市| 岳普湖县| 平远县| 海南省| 上虞市| 始兴县| 河北省| 庄河市|