【程式設計-C#】Array陣列的操作

陣列的排序

Array.Sort() 方法
可用來對指定的一維陣列物件由小而大做遞增排序。
語法1:將一維陣列物件中的元素做由小到大排序 :將一維陣列物件中的元素做由小到大排序
Array.Sort(陣列物件);
語法2:
用來將 陣列物件1 中的元素做由小到大排序,
且 陣列物件2 的元素會隨著 陣列物件1 的
索引位置跟著做排序的動作。
Array.Sort(陣列物件1, 陣列物件2);

陣列的反轉

Array.Reverse() 方法
用來反轉整個一維陣列的順序。
上例用Array.Sort() 方法對指定陣列由小而大遞增排序。
若希望改由大而小作遞減排序,需再將已做完遞增排序
的陣列再用 Array.Reverse() 方法即可將陣列由大而小
作遞減排序。
Array.Reverse() 語法:
Array.Reverse(陣列物件);

[例] 欲對陣列名稱avg做由大而小遞減排序,寫法:
Array.Sort(avg);
Array.Reverse(avg);
若同時有兩個相關陣列 name 和 avg,若以 avg 陣列
為基準由大而小做遞減排序,相關陣列需要同時 ,相關陣列需要同時反轉,
寫法:
Array.Sort(avg,name);
Array.Reverse(avg);
Array.Reverse(name);

陣列的搜尋

.NET Framework 類別程式庫的 Array 類別提供
1. Array.IndexOf()方法
2. Array. BinarySearch() 方法
用來搜尋某個資料是否在陣列物件中。
1. Array.IndexOf()方法
使用 Array.IndexOf 可用來搜尋陣列中是否有相符
資料。
 若有找到,則會傳回該陣列元素的註標值。
若沒有找到,會傳回-1。
語法:
Array.IndexOf(陣列名稱 ,查詢資料 [ ,起始註標] [ ,查詢距離] );

[例] 假設字串陣列 name 中有
{“Jack”,”Tom”,”Fred”,”Mary”,”Lucy”, “Jane” }
共六個陣列元素,觀察下列各陳述式輸出結果:
 Array.IndexOf(name,”Tom”);
[結果] 由註標0開始找起,傳回值為1。
Array.IndexOf(name, ”Tom”, 3) ;
[結果] 由註標3開始找起,傳回值為-1。
若str1=”Lucy” , start=1, offset=2
Array.IndexOf(name, str1, start, offset);
[結果] 由註標1開始往下找2個陣列元素的內容是否
有 ”Lucy” 字串。傳回值為-1。

 

2. Array.BinarySearch()方法
– 用來搜尋陣列中的資料,陣列未經排序 ,陣列未經排序,每次
搜尋資料都由最前面開始,資料量大時,愈後
面的資料查詢所花費的時間愈多,資料平均搜
尋時間不平均。
– 為不管資料前後次序,使得資料平均搜尋時間都
差不多,在 .NET Framework 類別程式庫另提供
此二分化搜尋方法來搜尋資料是否在陣列中。
– 此方法使用前陣列 才可使用
適用於資料量大的陣列。
語法:Array.BinarySearch(陣列名稱, 查詢資料);

陣列的拷貝

將某個陣列複製給另一個陣列時,可用 Array.Copy()
方法進行拷貝陣列。
語法:
Array.Copy (srcAry , srcIndex , dstAry , dstIndex , length );
srcAry :來源陣列即被拷貝的陣列。
srcIndex:代表 srcAry 來源陣列的註標,由指定的註標開始複製。
dstAry :接收資料的目的陣列。
dstIndex:代表 dstAry 目的陣列的註標,由指定的註標開始儲存。
length :表示要複製的陣列元素個數。

陣列的清除

當需要將某個陣列中指定範圍內的陣列元素的內容
清除,可透過 Array.Clear() 方法。語法:
Array.Clear(aryname, startindex, length);
【例1】將 myary 陣列中,註標為 3~4 陣列元素的內容
清除, 寫法:
Array.Clear(myary, 3, 2);
【例2】 將 myary 陣列中所有陣列元素的內容清除,
假設該 陣列共有六個陣列元素。寫法:
Array.Clear(myary, 0, 6);

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料