C#中數組與ArrayList的簡單使用

1. 多維數組

多維數組:行數和列數在定義時已肯定html

string[,] arr = new string[2, 3];
arr[0, 0] = "座標:1-1";
arr[0, 1] = "座標:1-2";
arr[0, 2] = "座標:1-3";
arr[1, 0] = "座標:2-1";
arr[1, 1] = "座標:2-2";
arr[1, 2] = "座標:2-3";

int m = arr.GetLength(0);    // 行數
int n = arr.GetLength(1);    // 列數

StringBuilder str = new StringBuilder();    // 相似於String類型變量

for (int i = 0; i < m; i++) {
    for (int j = 0; j < n; j++) {
        str.Append(arr[i, j] + "  ");
    }
}
Console.WriteLine(str.ToString());

2. 鋸齒數組

鋸齒數組:行數肯定,列數不定,數組裏套數組。數組

int[][] arr = new int[3][];
arr[0] = new int[] { 1, 2, 3, 4 };
arr[1] = new int[] { 100 };
arr[2] = new int[] { 10, 20, 30 };

foreach (int[] i in arr) {
    foreach (int x in i) {
        Console.WriteLine(x);   // 遍歷全部元素
    }
}
Console.WriteLine(arr[2][2]);   // 訪問單一元素,注意和多維素組的差異,會輸出30

3. 數組的經常使用操做

  • arr.Length屬性:數組中元素個數;
  • arr.GetLength(n):獲取數組arr第n維元素的個數;
  • arr.Rank:獲取數組arr的維數;

①克隆數組,就是複製一份新的post

int[] arr = new int[] { 1, 2, 3, 4};
int[] arr2 = (int[])arr.Clone();
for (int i = 0; i < arr2.Length; i++)
{
    Console.Write(arr2[i]);
}

4. ArrayList

命名空間:using System.Collections;ui

ArrayList就是傳說中的動態數組,它能夠動態的增長和減小元素,另外它能夠存儲任意個數和任意類型的元素。htm

屬性

  • Count屬性是目前ArrayList包含的元素的數量,這個屬性是隻讀的
  • Capacity屬性是目前ArrayList可以包含的最大數量,能夠手動的設置這個屬性,可是當設置爲小於Count值的時候會引起一個異常。

方法

  • Add(v):添加一個元素(參數v,任何類型)到當前列表的末尾
  • AddRange方法用於添加一批元素到當前列表的末尾
  • Remove方法用於刪除一個元素,經過元素自己的引用來刪除
  • RemoveAt(i):方法用於刪除一個元素,經過索引值(參數i)來刪除
  • RemoveRange用於刪除一批元素,經過指定開始的索引和刪除的數量來刪除
  • Insert用於添加一個元素到指定位置,列表後面的元素依次日後移動
  • InsertRange用於從指定位置開始添加一批元素,列表後面的元素依次日後移動
  • Clear():方法用於清除現有全部的元素
  • Contains(v):方法用來查找某個對象(參數v)在不在列表之中
  • ToArray(Type t):這個方法把ArrayList的元素Copy到一個新的數組中,參數爲Type類型

① 簡單使用

ArrayList list = new ArrayList();  // 聲明變量

list.Add(2);
list.Add("北京");
list.Add(new int[] { 2, 4, 6 });
list.Add("南京");
list.Add(3);

foreach (var p in list) {
    Console.Write(p.ToString() + " | ");  // 輸出:2 | 北京 | System.Int32[] | 南京 | 3 |
}

② ArrayList與數組轉換

元素類型相同的轉換對象

ArrayList list = new ArrayList();
list.Add(1);
list.Add(2);
list.Add(3);

// 轉換方式1:ToArray()
int[] list2 = (int[])list.ToArray(typeof(int));

// 轉換方式2:CopyTo()
int[] list3 = new int[list.Count];
list.CopyTo(list3);

元素類型不一樣的轉換blog

ArrayList arr = new ArrayList(){ "北京", 1};   //往數組中添加不一樣類型的元素

object[] arr2 = (object[])arr.ToArray(typeof(object)); //正確
string[] arr3 = (string[])arr.ToArray(typeof(string)); //錯誤
相關文章
相關標籤/搜索