基本數組
數組的定義:存儲相同數據類型的集合
第一種寫法:動態分配了內存空間
int[] intArray = new int[4];
第二種寫法
int[] intArray = {1,2,3,4};
第三種寫法
int[] intArray = new int[4]{1,2,3,4};
初始化數組,要么給定其長度,要么初始化數組元素
實際上我們的int[] 它的原型為Array
而int[]數組可以 用foreach循環的原因歸根結底為Array類本身已經實現了IEnumrable這個接口。
訪問數組元素
intArray[0];訪問數組中第0個位置儲存的元素。
當數組訪問越界時,程序崩潰!
? ?遍歷數組
for循環遍歷
? ?for(int i = 0;i<intArray.Length;i++)
{
? ? Console.WriteLine ("下標:{0},值{1}",i,intArray[i]);
}
foreach循環遍歷
foreach (var item in intArray) {
Console.WriteLine ("數組的元素為:" + item);
? ?}
如何修改數組里面的元素
通過索引取值進行賦值
intArray[2] = 10.0f; 這是錯誤的因為數據類型不對
intArray[2] = 10; 這是正確的
Array類型的數組
因為Array類是抽象類,所以不能被實例化,但是Array類有一個方法是我們能夠創建Array類型的數組
CreateInstance();方法的參數是 一個Type類型和一個int類型,分別表示了數組的類型和數組的長度。
Array arr = Array.CreateInstance (typeof(int), 5);
以上代碼就是創建了一個 長度為5的int類型的數組。
arr.SetValue (1, 0);
這是在數組中插入元素的方法第一個參數是數組元素,第二個參數是數組的位置,也就是下標。
遍歷數組
for (int i = 0; i < 3; i++) {
Console.WriteLine (a.GetValue(i));//該方法獲取下標為i的數組
}
ArraySegment<T>
int[] intArray1 = { 1, 2, 3, 4};
int[] intArray2 = { 5, 6, 7, 8 };
var se1 = new ArraySegment[2] {
new ArraySegment(intArray1, 0, 3),
new ArraySegment(intArray2, 3, 1)
? ?};
? ?Print (se1);
static void Print(ArraySegment[] segements)
{
foreach (var segement in segements) {
for (int i = segement.Offset; i < segement.Count+segement.Offset; i++) {
Console.WriteLine (segement.Array[i]);
}
}
}