[問題] Array Offset?

看板C_Sharp (C#)作者 (1+1≠2)時間10年前 (2015/04/29 22:44), 10年前編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/1
請問一下,Array有屬性可以將Array內的元素位移嗎? 假設有個string[] Temp = new string[]{"A","B","C","D", "E","F","G","H"}; 內有8個元素,每次固定往後位移兩個元素,所以會有四種Case.. [0]="A" [1]="B" [2]="C" [3]="D" [4]="E" [5]="F" [6]="G" [7]="H" [0]="G" [1]="H" [2]="A" [3]="B" [4]="C" [5]="D" [6]="E" [7]="F" [0]="E" [1]="F" [2]="G" [3]="H" [4]="A" [5]="B" [6]="C" [7]="D" [0]="C" [1]="D" [2]="E" [3]="F" [4]="G" [5]="H" [6]="A" [7]="B" 還是只能透過迴圈塞一個新的Array?? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.109.144 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1430318679.A.04B.html

04/30 04:28, , 1F
string[] arr; int offset=2; int count=arr.Length;
04/30 04:28, 1F

04/30 04:28, , 2F
Array.Reverse(arr,0,offset);
04/30 04:28, 2F

04/30 04:29, , 3F
Array.Reverse(arr, offset, count-offset);
04/30 04:29, 3F

04/30 04:29, , 4F
Array.Reverse(arr);
04/30 04:29, 4F

04/30 09:06, , 5F
沒想到真有這功能..
04/30 09:06, 5F

04/30 14:24, , 6F
沒有的功能就自己作(無誤)
04/30 14:24, 6F
補充一下,我後來的解法。 我後來是new 一個新的Array。 然後做兩次ArrayCopy 以上面的例子來說,第一次複製GH,第二次複製ABCDEFG 有查到好像可以透過Skip().Take()取得,但是以我的例子而言Skip後就無法回頭取了 ※ 編輯: don750421 (36.239.109.144), 04/30/2015 23:09:48

05/01 01:58, , 7F
為什麼不用一樓的解法?
05/01 01:58, 7F
文章代碼(AID): #1LGEvN1B (C_Sharp)
文章代碼(AID): #1LGEvN1B (C_Sharp)