AddRangeメソッドでは、指定されたコレクションのすべての内容を追加します。 一部分だけを追加することができるオーバーロードは用意されていません。
LINQのSkipメソッドとTakeメソッドを使ってコレクションの一部を取り出すことにより、一部分だけをListに追加することができます。 この方法はListだけでなく配列を含む任意のコレクションに対して用いることができます。
SkipメソッドとTakeメソッドを使ってコレクションの一部をListに追加する
Imports System
Imports System.Collections.Generic
Imports System.Linq
Class Sample
Shared Sub Main()
' Listへ格納したい内容をもったコレクション
Dim source As New List(Of Integer)(New Integer() {0, 1, 2, 3, 4})
' 追加先となるList
Dim list As New List(Of Integer)()
' sourceのインデックス1から3つ分の要素をlistに追加する
' (sourceの先頭から1つ分の要素はスキップし、それに続く3つの要素を取り出して追加する)
list.AddRange(source.Skip(1).Take(3))
Print(list)
End Sub
' Listの内容を列挙して表示する
Shared Sub Print(ByVal list As List(Of Integer))
For Each e As Integer In list
Console.Write("{0}, ", e)
Next
Console.WriteLine()
End Sub
End Class
実行結果
1, 2, 3,