什麼是從給定範圍拆分數組的C#代碼。 如:從給定範圍拆分數組
int[] arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
我想將它拆分arr
成兩個陣列。一個從0到5指數,另一個從6到20指數。
在Java Arrays.copyOfRange()
可用於此過程。這是什麼C#代碼?
什麼是從給定範圍拆分數組的C#代碼。 如:從給定範圍拆分數組
int[] arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}
我想將它拆分arr
成兩個陣列。一個從0到5指數,另一個從6到20指數。
在Java Arrays.copyOfRange()
可用於此過程。這是什麼C#代碼?
嘗試使用的Linq:
using System.Linq;
...
int[] arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
int[] head = arr.Take(5).ToArray();
int[] tail = arr.Skip(5).ToArray();
謝謝,如果我想要從索引5到索引10並創建一個新數組,請怎麼辦?有沒有直接的方法。 – ANJ
@ANJ:從索引5到10中的項目只需結合'Skip'和'Take':'int [] middle = arr.Skip(5).Take(5).ToArray();' –
'arr.Take(5).ToArray()'和'arr.Skip(5).ToArray()' –
由於這是一個重複的我在那裏回答:http://stackoverflow.com/a/43491049/284240一般來說'Array.Copy'比枚舉數組更有效率,直到你處於給定索引並用'ToArray'創建一個新數組。對於小型陣列來說,這是微型優化。但是由於醜陋的'Array.Copy'隱藏在擴展方法中,所以不需要關心可讀代碼。 –