您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關C#中怎么處理動態二維數組函數,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
對于C#動態二維數組函數處理方案理解我們引入一個例子來看看生活中,有很多事物,僅僅用一維數組,將無法恰當地被表示。還是說學生成績管理吧。一個班級30個學員,你把他們編成1到30號,這很好。但現在有兩個班級要管理怎么辦?人家每個班級都自有自的編號,比如一班學生編是1~30;二班的學生也是1~30。你說,不行,要進行計算機管理,你們兩班學員的編號要混在一起,從1號編到60號。
另外一種情況,仍然只有一個班級30人。但這回他們站到了操場,他們要做廣播體操,排成5行6列。這時所有老師都不管學員的編號了,老師會這樣喊:“第2排第4個同學,就說你啦!踢錯腳了!”。假設我們的校長大人要坐在校長室里,通過一個裝有監視器的電腦查看全校學員做廣播體操,這時,我們也需要一個多維數組。
那么如何在編程中實現C#動態二維數組函數處理方案呢?我們看看具體的實現內容:
//動態調整一維數組長度 public static Array Redim(Array origArray, int length) { //確定每個元素的類型 Type t = origArray.GetType().GetElementType(); //創建新的數組 Array newArray = Array.CreateInstance(t, length); //原數組中的數據拷貝到新數組中 Array.Copy(origArray, 0, newArray, 0, Math.Min(origArray.Length, length)); return newArray; } //動態調整二維數組長度 public static Array Redim(Array origArray, params int[] lengths) { //確定每個元素的類型 Type t = origArray.GetType().GetElementType(); //創建新的數組 Array newArray = Array.CreateInstance(t, lengths); //原數組中的數據拷貝到新數組中 for (int i = origArray.GetLowerBound(0); i <= Math.Min(origArray.GetUpperBound(0), newArray.GetUpperBound(0)); i++) for (int j = origArray.GetLowerBound(1); j <= Math.Min(origArray.GetUpperBound(1), newArray.GetUpperBound(1)); j++) newArray.SetValue(origArray.GetValue(i, j), i, j); //在這里沒有用Copy方法,如果用此方法, //會把原數組中所有數據逐個拷貝到新數組中 return newArray; }
//如果在Redim方法中用Copy方法(動態調整二維數組長度) public static Array Redim(Array origArray, params int[] lengths) { int length = 1; for (int i = 0; i < lengths.Length; i++) length *= lengths; Type t = origArray.GetType().GetElementType(); Array newArray = Array.CreateInstance(t, lengths); Array.Copy(origArray, 0, newArray, 0, Math.Min(origArray.Length, length)); return newArray; }
關于C#中怎么處理動態二維數組函數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。