1 次元の文字列配列に、その配列内の指定したインデックスを開始位置として StringCollection 値全体をコピーします。
名前空間: System.Collections.Specialized
アセンブリ: System (system.dll 内)
構文
'宣言
Public Sub CopyTo ( _
array As String(), _
index As Integer _
)
'使用
Dim instance As StringCollection
Dim array As String()
Dim index As Integer
instance.CopyTo(array, index)
public void CopyTo (
string[] array,
int index
)
public:
void CopyTo (
array<String^>^ array,
int index
)
public void CopyTo (
String[] array,
int index
)
public function CopyTo (
array : String[],
index : int
)
パラメータ
- array
StringCollection から要素がコピーされる 1 次元の文字列配列。Array には、0 から始まるインデックス番号が必要です。
- index
コピーの開始位置となる、array の 0 から始まるインデックス番号。
例外
| 例外の種類 | 条件 |
|---|---|
array が null 参照 (Visual Basic では Nothing) です。 |
|
index が 0 未満です。 |
|
array が多次元です。 または index が array の長さ以上です。 または コピー元の StringCollection の要素数が、index からコピー先の array の末尾までに格納できる数を超えています。 |
|
コピー元の StringCollection の型を、コピー先の array の型に自動的にキャストすることはできません。 |
解説
互換性のある型の配列を指定する必要があります。
要素は、StringCollection の列挙子が StringCollection を反復処理する際と同じ順序で、Array にコピーされます。
このメソッドは O(n) 操作です。ここで、n は Count です。
使用例
StringCollection を配列にコピーするコード例を次に示します。
Imports System
Imports System.Collections
Imports System.Collections.Specialized
Public Class SamplesStringCollection
Public Shared Sub Main()
' Creates and initializes a new StringCollection.
Dim myCol As New StringCollection()
Dim myArr() As [String] = {"RED", "orange", "yellow", "RED", "green", "blue", "RED", "indigo", "violet", "RED"}
myCol.AddRange(myArr)
Console.WriteLine("Initial contents of the StringCollection:")
PrintValues(myCol)
' Copies the collection to a new array starting at index 0.
Dim myArr2(myCol.Count) As [String]
myCol.CopyTo(myArr2, 0)
Console.WriteLine("The new array contains:")
Dim i As Integer
For i = 0 To myArr2.Length - 1
Console.WriteLine(" [{0}] {1}", i, myArr2(i))
Next i
Console.WriteLine()
End Sub 'Main
Public Shared Sub PrintValues(myCol As IEnumerable)
Dim obj As [Object]
For Each obj In myCol
Console.WriteLine(" {0}", obj)
Next obj
Console.WriteLine()
End Sub 'PrintValues
End Class 'SamplesStringCollection
'This code produces the following output.
'
'Initial contents of the StringCollection:
' RED
' orange
' yellow
' RED
' green
' blue
' RED
' indigo
' violet
' RED
'
'The new array contains:
' [0] RED
' [1] orange
' [2] yellow
' [3] RED
' [4] green
' [5] blue
' [6] RED
' [7] indigo
' [8] violet
' [9] RED
'
using System;
using System.Collections;
using System.Collections.Specialized;
public class SamplesStringCollection {
public static void Main() {
// Creates and initializes a new StringCollection.
StringCollection myCol = new StringCollection();
String[] myArr = new String[] { "RED", "orange", "yellow", "RED", "green", "blue", "RED", "indigo", "violet", "RED" };
myCol.AddRange( myArr );
Console.WriteLine( "Initial contents of the StringCollection:" );
PrintValues( myCol );
// Copies the collection to a new array starting at index 0.
String[] myArr2 = new String[myCol.Count];
myCol.CopyTo( myArr2, 0 );
Console.WriteLine( "The new array contains:" );
for ( int i = 0; i < myArr2.Length; i++ ) {
Console.WriteLine( " [{0}] {1}", i, myArr2[i] );
}
Console.WriteLine();
}
public static void PrintValues( IEnumerable myCol ) {
foreach ( Object obj in myCol )
Console.WriteLine( " {0}", obj );
Console.WriteLine();
}
}
/*
This code produces the following output.
Initial contents of the StringCollection:
RED
orange
yellow
RED
green
blue
RED
indigo
violet
RED
The new array contains:
[0] RED
[1] orange
[2] yellow
[3] RED
[4] green
[5] blue
[6] RED
[7] indigo
[8] violet
[9] RED
*/
#using <System.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
void PrintValues( IEnumerable^ myCol );
int main()
{
// Creates and initializes a new StringCollection.
StringCollection^ myCol = gcnew StringCollection;
array<String^>^myArr = {"RED","orange","yellow","RED","green","blue","RED","indigo","violet","RED"};
myCol->AddRange( myArr );
Console::WriteLine( "Initial contents of the StringCollection:" );
PrintValues( myCol );
// Copies the collection to a new array starting at index 0.
array<String^>^myArr2 = gcnew array<String^>(myCol->Count);
myCol->CopyTo( myArr2, 0 );
Console::WriteLine( "The new array contains:" );
for ( int i = 0; i < myArr2->Length; i++ )
{
Console::WriteLine( " [{0}] {1}", i, myArr2[ i ] );
}
Console::WriteLine();
}
void PrintValues( IEnumerable^ myCol )
{
IEnumerator^ myEnum = myCol->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ obj = safe_cast<Object^>(myEnum->Current);
Console::WriteLine( " {0}", obj );
}
Console::WriteLine();
}
/*
This code produces the following output.
Initial contents of the StringCollection:
RED
orange
yellow
RED
green
blue
RED
indigo
violet
RED
The new array contains:
[0] RED
[1] orange
[2] yellow
[3] RED
[4] green
[5] blue
[6] RED
[7] indigo
[8] violet
[9] RED
*/
import System.* ;
import System.Collections.* ;
import System.Collections.Specialized.* ;
public class SamplesStringCollection
{
public static void main(String[] args)
{
// Creates and initializes a new StringCollection.
StringCollection myCol = new StringCollection();
String myArr[] = new String[] { "RED", "orange", "yellow", "RED",
"green", "blue", "RED", "indigo", "violet", "RED" };
myCol.AddRange(myArr);
Console.WriteLine("Initial contents of the StringCollection:");
PrintValues(myCol);
// Copies the collection to a new array starting at index 0.
String myArr2[] = new String[myCol.get_Count()];
myCol.CopyTo(myArr2, 0);
Console.WriteLine("The new array contains:");
for (int i=0; i < myArr2.length; i++) {
Console.WriteLine(" [{0}] {1}",System.Convert.ToString(i),
myArr2.get_Item(i));
}
Console.WriteLine();
} //main
public static void PrintValues(IEnumerable myCol)
{
Object obj = null;
IEnumerator objEnum = myCol.GetEnumerator();
while (objEnum.MoveNext()) {
obj = objEnum.get_Current();
Console.WriteLine(" {0}", obj);
}
Console.WriteLine();
} //PrintValues
} //SamplesStringCollection
/*
This code produces the following output.
Initial contents of the StringCollection:
RED
orange
yellow
RED
green
blue
RED
indigo
violet
RED
The new array contains:
[0] RED
[1] orange
[2] yellow
[3] RED
[4] green
[5] blue
[6] RED
[7] indigo
[8] violet
[9] RED
*/
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 2.0、1.1、1.0
参照
関連項目
StringCollection クラス
StringCollection メンバ
System.Collections.Specialized 名前空間
Array クラス
GetEnumerator