看板 C_Sharp 關於我們 聯絡資訊
其實可以寫一個method就完成的 並且透過dynamic的使用 基本上從一維到多維陣列都可以通吃 但有鑑於一般最多只會使用到三維陣列 且三維陣列就相當複雜了XD 所以小弟這邊寫的方法只涵蓋了一維到三維陣列的部分 http://nopaste.csie.org/b3772 有寫上註解:p 程式預設是直接Console.WriteLine輸出找到的索引值 並且程式碼最前面是一個可當作範例使用的2x3x4三維陣列 原po可以視需要將Console.WriteLine改成其他方式呈現:p 有兩個重點如下: 1.這個方法所接收的參數是dynamic array 不可以是var 也不可以是泛型 也不可以是object dynamic的資料型別與一般的差別最大在於dynamic是在執行階段才決定資料型別的 所以這個方法才可以無論一維 二維 三維陣列皆可接收 2.當多維陣列Cast成有實作IList<T>(表示可透過索引進行存取) 與IEnumerable<T>介面的泛型集合時 陣列中元素的索引會從多維→一維填入集合 即假設有個陣列是[2, 2] 各元素的索引為[0, 0] [0, 1] [1, 0] [1, 1] 則當Cast成List<T>時 位於[0, 0]元素的新索引會是[0] [0, 1]→[1] [1, 0]→[2] [1, 1]→[3] 參考看看吧:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.115.97.252 ※ 編輯: Deadshot465 來自: 58.115.97.252 (11/21 03:26)