2011-12-13 59 views
0

我有一個字符串數組得到一個範圍,我需要得到一系列出來的是,說10個項目從指數計算20如何從一個數組

我看到有一個叫Take的擴展方法可以從數組的開始處獲取多個項目,但我也需要指定起始索引。

回答

4

首先使用Skip方法。像Take,這是一個LINQ的擴展方法,並返回一個IEnumerable:

Dim myRange = myArray.Skip(20).Take(10) 

如果數組包含20元以下,該方法不拋出異常,但返回一個空IEnumerable的。

1

可以使用Skip方法跳過一些項目:

theArray.Skip(20).Take(10) 
0

與選項嚴格在

Dim foo As IEnumerable(Of String) = myArray.Skip(20).Take(10) 

    Dim arrayPart() As String = myArray.Skip(20).Take(10).ToArray 
0

相同的例子,我想知道爲什麼在BCL以前到LINQ已經可能性「使用Array.Copy失蹤
例如:

Dim copy(9) As String ' or Dim copy(0 To 9) As String ' hence 10 items 
Array.Copy (source, 20, copy, 0, copy.Length) 

或者,如果你想擁有初始陣列中變化反映在複製(或你確定它不會被修改),可以使用一個ArraySegment是basicaly初始陣列中作爲這樣的「查看」真的不涉及複製:

Dim view As New ArraySegment(Of String)(source, 20, 10)