簡體   English   中英

從C#中的數組中間獲取元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM