[英]get elements from middle of array in c#
在C#中有一個數組
string[] arr = new string[] {"1","A","D","3","5","AF","34","TU","E","OP","4"};
所以我如何從這個數組的中間獲取元素,如下所示
string[] fromArr = new string[5];
fromArr = {"D","3","5","AF","34"};
你知道任何方法或任何方式嗎?
最簡單的方法是使用LINQ2Objects
var fromArr = arr.Skip(2).Take(5).ToArray();
最有效的方法是使用Array.Copy
,但是該代碼編寫起來要麻煩得多,您需要弄清楚這一點,包括處理數組不夠長時的所有邊緣情況等。
但是,如果僅使用幾次結果,而無需將其復制回數組,則可以使用LINQ2SQL的惰性求值功能
IEnumerable<string> fromArr = arr.Skip(2).Take(5);
那么您可以循環使用fromArr
或其他任何方法,而無需首先復制數據。
考慮到這一點,您也可以選擇使用ArraySegment<string>
而不是復制到新數組。
但是出於可讀性和簡單性考慮,請堅持使用LINQ版本,除非您有真正的理由使用其他選擇。
LINQ為此提供了一些好的方法。 就你而言
arr.Skip(2).Take(5).ToArray()
應該產生您所需要的。
參考在這里: http : //msdn.microsoft.com/en-us/library/bb386988.aspx
為此使用LINQ
arr.Skip(2).Take(5).ToArray()
您可以使用Array.copy
數組的一部分,例如:
string[] arr = new string[] {"1","A","D","3","5","AF","34","TU","E","OP","4"};
string[] fromArr = new string[5];
Array.Copy(arr, 2, fromArr, 0, 5);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.