• 検索結果がありません。

ファイル操作

N/A
N/A
Protected

Academic year: 2021

シェア "ファイル操作"

Copied!
19
0
0

読み込み中.... (全文を見る)

全文

(1)

■ System.Array クラス ■ ■ System.Array クラス 配列の作成、操作、検索、及び、並替を行うメソッドを提供する。此れに依り、共通言語ランタイムの 総ての配列の基本クラスとして機能する。 名 前 空 間:System アセンブリ:mscorlib (mscorlib.dll 内) Array クラスは、配列をサポートする言語に依る各実装の基本クラスで有る。但し、システムとコンパ イラに限り、Array クラスから明示的に派生させる事が出来る。開発者は、言語に依り提供される配列 構造を使用する必要が有る。

要素はArray 内の値で有る。Array の長さは、其の配列に含まれる要素の合計数で有る。Array のラン クは、Array の次元数で有る。Array の次元の下限は、Array の其の次元の開始インデックスで有る。 多次元Array では次元毎に下限が異なる事が有る。

重要:.NET Framework Version 2.0 では、Array クラスは System.Collections.Generic.IList、 System.Collections.Generic.ICollection、及び、System.Collections.Generic.IEnumerable の各ジェネ リックインターフェイスを実装する。此の実装は、実行時に配列に提供される為、ドキュメント作成ツ ールでは表示出来ない。従って、ジェネリックインターフェイスはArray クラスの宣言構文には表示さ れないので、配列をジェネリックインターフェイス型にキャストする事(明示的なインターフェイスの 実装)に依って而巳アクセス出来るインターフェイスメンバに関する参照トピックは無い。配列を此等 のインターフェイスの孰れかにキャストする場合には、要素を追加、挿入、又は、削除するメンバが NotSupportedException をスローする事に特に注意する必要が有る。 Type オブジェクトは、配列型宣言の情報を提供する。配列型が同じで有る Array オブジェクトは、同 じType オブジェクトを共有する。 配 列 を Array 型にキャストした場合に、結果が配列ではなくオブジェクトに成る事も有る為

Type.IsArray と Type.GetElementType は、Array に付いて予測される結果を返さない場合が有る。詰 まり、typeof(System.Array).IsArray は false を返し、typeof(System.Array).GetElementType は null 参照(Visual Basic では Nothing)を返す。

殆どのクラスとは異なり、Array は、遅延バインディングに依るアクセスを可能にする為に、パブリッ クコンストラクタではなくCreateInstance メソッドを用意して居る。 Array.Copy メソッドでは、同じ型の配列間丈で無く、異なる型の標準配列間でも要素がコピーされる。 詰まり、自動的に型キャストが処理される。 CreateInstance、Copy、CopyTo、GetValue、SetValue 等、メソッドに依っては大容量の配列に対応 する為に 64 ビット整数をパラメータとして受け取るオーバーロードが用意されて居る。LongLength とGetLongLength は、配列の長さを示す 64 ビット整数を返す。

(2)

Array が並べ替えられる事は保証されて居ない。Array を並べ替える必要の有る操作(BinarySearch 等)を実行する前に、Array を並べ替える必要が有る。 ■ System.Array クラスのコンストラクタ 殆どのクラスとは異なり、Array は、遅延バインディングに依るアクセスを可能にする為に、パブリッ クコンストラクタではなくCreateInstance メソッドを用意して居る。 ■ System.Array クラスのメンバ パブリックプロパティ 名前 説明 IsFixedSize Array が固定サイズか何うかを示す値を取得する。 IsReadOnly Array が読み取り専用か何うかを示す値を取得する。 IsSynchronized Array へのアクセスが同期されて居る(スレッドセーフで有る)か何うかを示す値 を取得する。 Length Array の総ての次元内の要素の総数を表す 32 ビット整数を取得する。 LongLength Array の総ての次元内の要素の総数を表す 64 ビット整数を取得する。 Rank Array のランク(次元数)を取得する。 SyncRoot Array へのアクセスを同期する為に使用出来るオブジェクトを取得する。 パブリックメソッド 名前 説明 AsReadOnly 指定した配列をラップする読み取り専用のラッパーを作成する。 BinarySearch バイナリサーチアルゴリズムを使用して、並べ替え済みの1 次元の Array 内で値 を検索する。

Clear Array 内の要素の範囲を、要素の型に応じて、0(ゼロ)、false、又は、null 参照

(Visual Basic では Nothing)に設定する。

Clone Array の簡易コピーを作成する。

ConstrainedCopy 指定したコピー元インデックスを開始位置として Array から要素の範囲をコピ

ーし、指定したコピー先インデックスを開始位置として他のArray に其等の要素

を貼り付ける。コピーが完全に成功しない限り、変更は一切適用されない。

ConvertAll 或る型の配列を別の型の配列に変換する。

Copy 一方のArray の要素範囲を他方の Array にコピーし、必要に応じて型キャストと

ボックス化を実行する。

CopyTo 現在の1 次元 Array の総ての要素を指定した 1 次元 Array にコピーする。 CreateInstance Array クラスの新しいインスタンスを初期化する。 Equals 2 つの Object インスタンスが等しいか何うかを判断する。 Exists 指定された配列に、指定された述語に依り定義された条件と一致する要素が含ま れて居るか何うかを判断する。 Find 指定された述語に依り定義された条件と一致する要素を検索し、Array 全体の中 で最もインデックス番号の小さい要素を返す。 FindAll 指定された述語に依り定義された条件と一致する総ての要素を取得する。 FindIndex オーバーロードされる。

(3)

FindLast 指定された述語に依り定義された条件と一致する要素を、Array 全体を対象に検 索し、最もインデックス番号の大きい要素を返す。

FindLastIndex オーバーロードされる。

ForEach 指定された配列内の各要素に対して、指定された処理を実行する。

GetEnumerator Array の IEnumerator を返す。

GetHashCode 特定の型のハッシュ関数として機能する。GetHashCode は、ハッシュアルゴリ ズムや、ハッシュテーブルの様なデータ構造での使用に適して居る。 GetLength Array の指定した次元に有る要素の数を表す 32 ビット整数を取得する。 GetLongLength Array の指定した次元に有る要素の数を表す 64 ビット整数を取得する。 GetLowerBound Array 内の指定した次元の下限を取得する。 GetType 現在のインスタンスのType を取得する。 GetUpperBound Array 内の指定した次元の上限を取得する。 GetValue 現在のArray 内の指定した要素の値を取得する。

IndexOf 1 次元 Array 内や Array の範囲内で値を最初に見付けた位置のインデックス番号

を返す。

Initialize 値型の既定のコンストラクタを呼び出して、此の値型Array の各要素を初期化す

る。

LastIndexOf 1 次元 Array 内や Array の範囲内で値を最後に見付けた位置のインデックス番号 を返す。

ReferenceEquals 指定した複数のObject インスタンスが同一か何うかを判断する。

Resize 配列のサイズを、新たに指定したサイズに変更する。

Reverse 1 次元 Array 内や Array の範囲内の要素の順序を反転させる。

SetValue 現在のArray 内の指定した要素を、指定した値に設定する。

Sort 1 次元 Array オブジェクト内の要素を並べ替える。

ToString 現在のObject を表す String を返す。

TrueForAll 配列内の総ての要素が、指定された述語に依り定義された条件と一致するか何う

かを調べる。 プロテクトメソッド

名前 説明

Finalize Object がガベージコレクションに依り収集される前に、其の Object がリソース を解放し、其の他のクリーンアップ操作を実行出来る様にする。

MemberwiseClone 現在の Object の簡易コピーを作成する。 明示的インターフェイスの実装

名前 説明

System.Collections.IList.Add IList.Add を実装する。常に NotSupportedException をスロ ーする。

System.Collections.IList.Clear Array 内の総ての要素を、要素の型に応じて、0(ゼロ)、false、 又は、null 参照(Visual Basic では Nothing)に設定する。 System.Collections.IList.Contains 或る要素がArray 内に存在するか何うかを判断する。 System.Collections.IList.IndexOf 指定したオブジェクトを検索し、現在の1 次元インスタンス

内で其のオブジェクトが最初に見付かった位置のインデッ クス番号を返す。

(4)

System.Collections.IList.Insert IList.Insert を実装する。常に NotSupportedException をス ローする。

System.Collections.IList.Remove IList.Remove を実装する。常に NotSupportedException を スローする。

System.Collections.IList.RemoveAt IList.RemoveAt を実装する。常に NotSupportedException をスローする。 System.Collections.ICollection.Count Array に格納されて居る要素の数を取得する。 System.Collections.IList.Item 指定したインデックスに有る要素を取得、又は、設定する。 ■ 使用例 Array.Copy メソッドを使用して、整数型の配列と Object 型の配列間で要素をコピーする方法を次のコ ード例で示す。 Visual Bsic

Public Class SamplesArray

Public Shared Sub Main()

' Creates and initializes a new integer array and a new Object array. Dim myIntArray() As Integer = {1, 2, 3, 4, 5}

Dim myObjArray() As Object = {26, 27, 28, 29, 30}

' Prints the initial values of both arrays. Console.WriteLine("Initially,") Console.Write("integer array:") PrintValues(myIntArray) Console.Write("Object array: ") PrintValues(myObjArray)

' Copies the first two elements from the integer array to the Object array. Array.Copy(myIntArray, myObjArray, 2)

' Prints the values of the modified arrays.

Console.WriteLine(ControlChars.NewLine + "After copying the first two" _ + " elements of the integer array to the Object array,")

Console.Write("integer array:") PrintValues(myIntArray) Console.Write("Object array: ") PrintValues(myObjArray)

' Copies the last two elements from the Object array to the integer array. Array.Copy(myObjArray, myObjArray.GetUpperBound(0) - 1, myIntArray, _ myIntArray.GetUpperBound(0) - 1, 2)

' Prints the values of the modified arrays.

(5)

+ " elements of the Object array to the integer array,") Console.Write("integer array:") PrintValues(myIntArray) Console.Write("Object array: ") PrintValues(myObjArray) End Sub

Overloads Public Shared Sub PrintValues(myArr() As Object) Dim i As Object

For Each i In myArr

Console.Write(ControlChars.Tab + "{0}", i) Next i

Console.WriteLine() End Sub

Overloads Public Shared Sub PrintValues(myArr() As Integer) Dim i As Integer

For Each i In myArr

Console.Write(ControlChars.Tab + "{0}", i) Next i

Console.WriteLine() End Sub

End Class

' This code produces the following output. '

' Initially,

' integer array: 1 2 3 4 5 ' Object array: 26 27 28 29 30 '

' After copying the first two elements of the integer array to the Object array, ' integer array: 1 2 3 4 5

' Object array: 1 2 28 29 30 '

' After copying the last two elements of the Object array to the integer array, ' integer array: 1 2 3 29 30

' Object array: 1 2 28 29 30

C#

public class SamplesArray { public static void Main() {

// Creates and initializes a new integer array and a new Object array. int[] myIntArray = new int[5] { 1, 2, 3, 4, 5 };

Object[] myObjArray = new Object[5] { 26, 27, 28, 29, 30 }; // Prints the initial values of both arrays.

(6)

Console.WriteLine( "Initially," ); Console.Write( "integer array:" ); PrintValues( myIntArray ); Console.Write( "Object array: " ); PrintValues( myObjArray );

// Copies the first two elements from the integer array to the Object array. Array.Copy( myIntArray, myObjArray, 2 );

// Prints the values of the modified arrays. Console.WriteLine(

"¥nAfter copying the first two elements of the integer array to the Object array," ); Console.Write( "integer array:" );

PrintValues( myIntArray ); Console.Write( "Object array: " ); PrintValues( myObjArray );

// Copies the last two elements from the Object array to the integer array. Array.Copy( myObjArray, myObjArray.GetUpperBound(0) - 1,

myIntArray, myIntArray.GetUpperBound(0) - 1, 2 ); // Prints the values of the modified arrays.

Console.WriteLine(

"¥nAfter copying the last two elements of the Object array to the integer array," ); Console.Write( "integer array:" );

PrintValues( myIntArray ); Console.Write( "Object array: " ); PrintValues( myObjArray ); }

public static void PrintValues( Object[] myArr ) { foreach ( Object i in myArr ) {

Console.Write( "¥t{0}", i ); }

Console.WriteLine(); }

public static void PrintValues( int[] myArr ) { foreach ( int i in myArr ) {

Console.Write( "¥t{0}", i ); } Console.WriteLine(); } } /*

(7)

Initially,

integer array: 1 2 3 4 5 Object array: 26 27 28 29 30

After copying the first two elements of the integer array to the Object array, integer array: 1 2 3 4 5

Object array: 1 2 28 29 30

After copying the last two elements of the Object array to the integer array, integer array: 1 2 3 29 30

Object array: 1 2 28 29 30 */

Array を作成及び初期化し、其のプロパティと要素を表示するコード例を次に示す。

Visual Basic

Public Class SamplesArray2

Public Shared Sub Main()

' Creates and initializes a new three-dimensional Array of ' type Int32.

Dim myArr As Array = Array.CreateInstance(GetType(Int32), 2, 3, 4) Dim i As Integer

For i = myArr.GetLowerBound(0) To myArr.GetUpperBound(0) Dim j As Integer

For j = myArr.GetLowerBound(1) To myArr.GetUpperBound(1) Dim k As Integer

For k = myArr.GetLowerBound(2) To myArr.GetUpperBound(2) myArr.SetValue(i * 100 + j * 10 + k, i, j, k)

Next k Next j

Next i ' Displays the properties of the Array.

Console.WriteLine("The Array has {0} dimension(s) and a " _ + "total of {1} elements.", myArr.Rank, myArr.Length)

Console.WriteLine(ControlChars.Tab + "Length" + ControlChars.Tab _ + "Lower" + ControlChars.Tab + "Upper")

For i = 0 To myArr.Rank - 1 Console.Write("{0}:" + ControlChars.Tab + "{1}", i, _ myArr.GetLength(i)) Console.WriteLine(ControlChars.Tab + "{0}" + ControlChars.Tab _ + "{1}", myArr.GetLowerBound(i), myArr.GetUpperBound(i)) Next i

' Displays the contents of the Array.

Console.WriteLine("The Array contains the following values:") PrintValues(myArr)

(8)

End Sub

Public Shared Sub PrintValues(myArr As Array)

Dim myEnumerator As System.Collections.IEnumerator = _ myArr.GetEnumerator()

Dim i As Integer = 0

Dim cols As Integer = myArr.GetLength(myArr.Rank - 1) While myEnumerator.MoveNext() If i < cols Then i += 1 Else Console.WriteLine() i = 1 End If Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current) End While Console.WriteLine() End Sub End Class

' This code produces the following output. '

' The Array has 3 dimension(s) and a total of 24 elements. ' Length Lower Upper

' 0: 2 0 1 ' 1: 3 0 2 ' 2: 4 0 3

' The Array contains the following values: ' 0 1 2 3 ' 10 11 12 13 ' 20 21 22 23 ' 100 101 102 103 ' 110 111 112 113 ' 120 121 122 123 C#

public class SamplesArray2{ public static void Main() {

// Creates and initializes a new three-dimensional Array of type Int32. Array myArr = Array.CreateInstance( typeof(Int32), 2, 3, 4 );

for ( int i = myArr.GetLowerBound(0); i <= myArr.GetUpperBound(0); i++ ) for ( int j = myArr.GetLowerBound(1); j <= myArr.GetUpperBound(1); j++ ) for ( int k = myArr.GetLowerBound(2); k <= myArr.GetUpperBound(2); k++ ) { myArr.SetValue( (i*100)+(j*10)+k, i, j, k );

(9)

// Displays the properties of the Array. Console.WriteLine(

"The Array has {0} dimension(s) and a total of {1} elements.", myArr.Rank, myArr.Length ); Console.WriteLine( "¥tLength¥tLower¥tUpper" );

for ( int i = 0; i < myArr.Rank; i++ ) {

Console.Write( "{0}:¥t{1}", i, myArr.GetLength(i) );

Console.WriteLine( "¥t{0}¥t{1}", myArr.GetLowerBound(i), myArr.GetUpperBound(i) ); }

// Displays the contents of the Array.

Console.WriteLine( "The Array contains the following values:" ); PrintValues( myArr );

}

public static void PrintValues( Array myArr ) {

System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator(); int i = 0;

int cols = myArr.GetLength( myArr.Rank - 1 ); while ( myEnumerator.MoveNext() ) { if ( i < cols ) { i++; } else { Console.WriteLine(); i = 1; } Console.Write( "¥t{0}", myEnumerator.Current ); } Console.WriteLine(); } } /*

This code produces the following output.

The Array has 3 dimension(s) and a total of 24 elements. Length Lower Upper

0: 2 0 1 1: 3 0 2 2: 4 0 3

The Array contains the following values: 0 1 2 3 10 11 12 13 20 21 22 23 100 101 102 103 110 111 112 113 120 121 122 123 */

(10)

■ System.Collections.Generic.List クラス ■ ■ System.Collections.Generic.List クラス インデックスを使用してアクセス出来る、厳密に型指定されたオブジェクトのリストを表す。リストの 検索、並べ替え、及び操作の為のメソッドを提供する。 名 前 空 間:System.Collections.Generic アセンブリ:mscorlib (mscorlib.dll 内)

メモ:此のクラスは、.NET Framework version 2.0 で新しく追加された物で有る。

List クラスは、ArrayList クラスとジェネリック(総称的)に等価で有る。此のクラスは、必要に応じ てサイズが動的に増加する配列を使用して、IList ジェネリックインターフェイスを実装する。 List クラスは、等値比較演算子と順序比較演算子の両方を使用する。 ・Contains、IndexOf、LastIndexOf、Remove 等のメソッドは、リスト要素の等値比較演算子を使用 する。型T の既定の等値比較演算子は、次の様に決定される。型 T が IEquatable ジェネリックイン ターフェイスを実装して居る場合、等値比較演算子は其のインターフェイスのEquals メソッドで有 る。其れ以外の場合、既定の等値比較演算子はObject.Equals(Object) で有る。 ・BinarySearch、Sort 等のメソッドは、リスト要素の順序比較演算子を使用する。型 T の既定の比較 演算子は、次の様に決定される。型T が IComparable ジェネリックインターフェイスを実装して居 る場合、既定の比較演算子は其のインターフェイスのCompareTo メソッドで有る。其れ以外で、型 T が非ジェネリックの IComparable インターフェイスを実装して居る場合、既定の比較演算子は其 のインターフェイスのCompareTo メソッドで有る。型 T が孰れのインターフェイスも実装して居な い場合、既定の比較演算子は存在せず、比較演算子、又は、比較デリゲートを明示的に指定する必要 が有る。

List が並べ替えられる事は保証されて居ない。List を並べ替える必要の有る操作(BinarySearch 等) を実行する前に、List を並べ替える必要が有る。

此のコレクション内の要素は、整数インデックスを使用してアクセス出来る。此のコレクションのイン デックスは0 から始まる。

List は、null 参照(Visual Basic では Nothing)を参照型に対して有効な値として受け取り、要素の重 複を許可する。

パフォーマンスに関する考慮事項

List クラスと ArrayList クラスの孰れを使用するかを決定する場合、両者の機能は類似して居るが、List クラスは通常パフォーマンスが優れて居り、タイプセーフで有る事も考慮され度い。List クラスの型 T で参照型が使用される場合、2 つのクラスの動作は同じで有る。但し、型 T で値型が使用される場合、 実装とボックス化の実行を検討する必要が有る。

型T で値型が使用される場合、コンパイラは其の値型の為に List クラスの実装を生成する。詰まり、

(11)

ト要素が作成されると、ボックス化しないリスト要素が保存されたメモリは、其のクラス実装を生成す る為に使用されたメモリよりも大きく成る。 型T で使用される値型が、IEquatable ジェネリックインターフェイスを実装して居る事を確認する。 実 装 し て 居 な い 場 合 、Contains 等のメソッドは、影響を受けるリスト要素をボックス化する Object.Equals(Object) メソッドを呼び出す必要が有る。値型が IComparable インターフェイスを実装 して居る場合、ソースコードを所有して居れば、IComparable ジェネリックインターフェイスも実装し てBinarySearch メソッドと Sort メソッドがリスト要素をボックス化しない様にする。ソースコードを 所有して居ない場合は、IComparer オブジェクトを BinarySearch メソッドと Sort メソッドに渡す。 ArrayList クラスを使用したり、厳密に型指定されたラッパーのコレクションを独自に記述したりする 代わりに、List クラスの型固有の実装を使用する事には利点が有る。其の理由は、独自の実装では、既 に.NET Framework が行って居る動作を実行する必要が有る事で有る。亦、共通言語ランタイムは MSIL(Microsoft Intermediate Language)コードとメタデータを共有出来るが、独自の実装では出来 ない事も理由で有る。 ■ System.Collections.Generic.List クラスのコンストラクタ List クラスの新しいインスタンスを初期化する。 オーバーロードの一覧 名前 説明 List ( ) 空で、既定の初期量を備えたList クラスの新しいインスタンス を初期化する。 List (ジェネリック IEnumerable) 指定したコレクションからコピーした要素を格納し、コピーさ れる要素の数を格納出来る丈の容量を備えた List クラスの新 しいインスタンスを初期化する。

List (Int32) 空で、指定した初期量を備えたList クラスの新しいインスタン

スを初期化する。 ※ .NET Compact Framework に依りサポートされて居る。 ■ System.Collections.Generic.List クラスのメンバ パブリック プロパティ 名前 説明 Capacity 内部データ構造体がサイズ変更せずに格納出来る要素の合計数を取得、又は、設定する。 Count List に実際に格納されて居る要素の数を取得する。 Item 指定したインデックスに有る要素を取得、又は、設定する。 パブリックメソッド 名前 説明 Add List の末尾にオブジェクトを追加する。 AddRange 指定したコレクションの要素をList の末尾に追加する。

(12)

AsReadOnly 現在のコレクションの読み取り専用のIList ラッパーを返す。 BinarySearch バイナリサーチアルゴリズムを使用して、並べ替えられたList 内の特定の要素や 其の一部を検索する。 Clear List から総ての要素を削除する。 Contains 或る要素がList 内に存在するか何うかを判断する。 ConvertAll 現在の List の要素を別の型に変換し、変換された要素が格納されたリストを返 す。 CopyTo List 全体、又は、其の一部を配列にコピーする。 Equals 2 つの Object インスタンスが等しいか何うかを判断する。 Exists List に、指定された述語に依り定義された条件と一致する要素が含まれて居るか 何うかを判断する。 Find 指定された述語に依り定義された条件と一致する要素を検索し、List 全体の中で 最もインデックス番号の小さい要素を返す。 FindAll 指定された述語に依り定義された条件と一致する総ての要素を取得する。 FindIndex 指定された述語に依り定義された条件と一致する要素を、List 全体、又は、其の 一部分を対象に検索し、最もインデックス番号の小さい要素の0 から始まるイン デックスを返す。 FindLast 指定された述語に依り定義された条件と一致する要素を、List 全体を対象に検索 し、最もインデックス番号の大きい要素を返す。 FindLastIndex 指定された述語に依り定義された条件と一致する要素を、List 全体、又は、其の 一部分を対象に検索し、最もインデックス番号の大きい要素の0 から始まるイン デックスを返す。 ForEach List の各要素に対して、指定された処理を実行する。 GetEnumerator List を反復処理する列挙子を返す。 GetHashCode 特定の型のハッシュ関数として機能する。GetHashCode は、ハッシュアルゴリ ズムや、ハッシュテーブルの様なデータ構造での使用に適して居る。 GetRange コピー元のList 内の、或る範囲の要素の簡易コピーを作成する。 GetType 現在のインスタンスのType を取得する。 IndexOf List 内か其の一部に有る値の内、最初に出現する値の、0 から始まるインデック ス番号を返す。 Insert List 内の指定したインデックスの位置に要素を挿入する。 InsertRange コレクションの要素をList 内の指定したインデックスの位置に挿入する。 LastIndexOf List 内か其の一部に有る値の内、最後に出現する値の、0 から始まるインデック ス番号を返す。 ReferenceEquals 指定した複数の Object インスタンスが同一か何うかを判断する。 Remove List 内で最初に見付かった特定のオブジェクトを削除する。 RemoveAll 指定された述語に依り定義された条件と一致する総ての要素を削除する。 RemoveAt List の指定したインデックスに有る要素を削除する。 RemoveRange List から要素の範囲を削除する。 Reverse List 内か其の一部の要素の順序を反転させる。 Sort List 内か其の一部の要素を並べ替える。 ToArray List の要素を新しい配列にコピーする。

ToString 現在のObject を表す String を返す。

TrimExcess List 内に有る実際の要素数が閾値未満の場合は、容量を其の数に設定する。

TrueForAll List 内の総ての要素が、指定された述語に依り定義された条件と一致するか何う

(13)

■ 使用例

List ジェネリッククラスの幾つかのプロパティとメソッドを使用したコード例を次に示す。既定のコン

ストラクタを使用して、容量が0 の文字列のリストを作成する。Capacity プロパティが表示された後、

Add メソッドを使用して複数の項目を追加する。項目がリストされ、Capacity プロパティが Count プ ロパティと共に再表示されて、必要に応じて容量が増加した事が示される。 Contains メソッドを使用して、リストに項目が存在するかをテストし、Insert メソッドを使用して、 リストの中間に新しい項目を挿入する。リストの内容が再表示される。 既定のItem プロパティ(C#ではインデクサ)を使用して項目を取得し、Remove メソッドを使用して、 以前に追加された重複して居る項目の最初のインスタンスを削除する。内容が再表示される。Remove メソッドは、常に、見付かった最初のインスタンスを削除する。

TrimExcess メソッドを使用して、項目数と一致する様に容量を削減する。Capacity プロパティと Count

プロパティが表示される。未使用の容量が全容量の10%未満で有った場合、リストのサイズは変更され

て居ない。

最後に、Clear メソッドを使用して、リストから総ての項目を削除し、Capacity プロパティと Count プロパティが表示される。

Visual Basic

Imports System

Imports System.Collections.Generic Public Class Example

Public Shared Sub Main()

Dim dinosaurs As New List(Of String)

Console.WriteLine(vbLf & "Capacity: {0}", dinosaurs.Capacity) dinosaurs.Add("Tyrannosaurus") dinosaurs.Add("Amargasaurus") dinosaurs.Add("Mamenchisaurus") dinosaurs.Add("Deinonychus") dinosaurs.Add("Compsognathus") Console.WriteLine()

For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur)

Next

Console.WriteLine(vbLf & "Capacity: {0}", dinosaurs.Capacity) Console.WriteLine("Count: {0}", dinosaurs.Count)

(14)

dinosaurs.Contains("Deinonychus"))

Console.WriteLine(vbLf & "Insert(2, ""Compsognathus"")") dinosaurs.Insert(2, "Compsognathus")

Console.WriteLine()

For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur)

Next

Console.WriteLine(vbLf & "dinosaurs(3): {0}", dinosaurs(3)) Console.WriteLine(vbLf & "Remove(""Compsognathus"")") dinosaurs.Remove("Compsognathus")

Console.WriteLine()

For Each dinosaur As String In dinosaurs Console.WriteLine(dinosaur)

Next

dinosaurs.TrimExcess()

Console.WriteLine(vbLf & "TrimExcess()")

Console.WriteLine("Capacity: {0}", dinosaurs.Capacity) Console.WriteLine("Count: {0}", dinosaurs.Count) dinosaurs.Clear()

Console.WriteLine(vbLf & "Clear()")

Console.WriteLine("Capacity: {0}", dinosaurs.Capacity) Console.WriteLine("Count: {0}", dinosaurs.Count) End Sub

End Class

' This code example produces the following output: ' 'Capacity: 0 ' 'Tyrannosaurus 'Amargasaurus 'Mamenchisaurus 'Deinonychus 'Compsognathus ' 'Capacity: 8 'Count: 5 ' 'Contains("Deinonychus"): True ' 'Insert(2, "Compsognathus")

(15)

' 'Tyrannosaurus 'Amargasaurus 'Compsognathus 'Mamenchisaurus 'Deinonychus 'Compsognathus ' 'dinosaurs(3): Mamenchisaurus ' 'Remove("Compsognathus") ' 'Tyrannosaurus 'Amargasaurus 'Mamenchisaurus 'Deinonychus 'Compsognathus ' 'TrimExcess() 'Capacity: 5 'Count: 5 ' 'Clear() 'Capacity: 5 'Count: 0 C# using System; using System.Collections.Generic; public class Example

{

public static void Main() {

List<string> dinosaurs = new List<string>();

Console.WriteLine("¥nCapacity: {0}", dinosaurs.Capacity); dinosaurs.Add("Tyrannosaurus"); dinosaurs.Add("Amargasaurus"); dinosaurs.Add("Mamenchisaurus"); dinosaurs.Add("Deinonychus"); dinosaurs.Add("Compsognathus"); Console.WriteLine();

foreach(string dinosaur in dinosaurs) {

(16)

} Console.WriteLine("¥nCapacity: {0}", dinosaurs.Capacity); Console.WriteLine("Count: {0}", dinosaurs.Count); Console.WriteLine("¥nContains(¥"Deinonychus¥"): {0}", dinosaurs.Contains("Deinonychus")); Console.WriteLine("¥nInsert(2, ¥"Compsognathus¥")"); dinosaurs.Insert(2, "Compsognathus"); Console.WriteLine();

foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } Console.WriteLine("¥ndinosaurs[3]: {0}", dinosaurs[3]); Console.WriteLine("¥nRemove(¥"Compsognathus¥")"); dinosaurs.Remove("Compsognathus"); Console.WriteLine();

foreach(string dinosaur in dinosaurs) { Console.WriteLine(dinosaur); } dinosaurs.TrimExcess(); Console.WriteLine("¥nTrimExcess()"); Console.WriteLine("Capacity: {0}", dinosaurs.Capacity); Console.WriteLine("Count: {0}", dinosaurs.Count); dinosaurs.Clear(); Console.WriteLine("¥nClear()"); Console.WriteLine("Capacity: {0}", dinosaurs.Capacity); Console.WriteLine("Count: {0}", dinosaurs.Count); } }

/* This code example produces the following output: Capacity: 0

Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus

(17)

Compsognathus Capacity: 8 Count: 5 Contains("Deinonychus"): True Insert(2, "Compsognathus") Tyrannosaurus Amargasaurus Compsognathus Mamenchisaurus Deinonychus Compsognathus dinosaurs[3]: Mamenchisaurus Remove("Compsognathus") Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus Compsognathus TrimExcess() Capacity: 5 Count: 5 Clear() Capacity: 5 Count: 0 */ C++

using namespace System;

using namespace System::Collections::Generic; void main()

{

List<String^>^ dinosaurs = gcnew List<String^>();

Console::WriteLine("¥nCapacity: {0}", dinosaurs->Capacity); dinosaurs->Add("Tyrannosaurus");

dinosaurs->Add("Amargasaurus"); dinosaurs->Add("Mamenchisaurus");

(18)

dinosaurs->Add("Deinonychus"); dinosaurs->Add("Compsognathus"); Console::WriteLine();

for each(String^ dinosaur in dinosaurs ) { Console::WriteLine(dinosaur); } Console::WriteLine("¥nCapacity: {0}", dinosaurs->Capacity); Console::WriteLine("Count: {0}", dinosaurs->Count); Console::WriteLine("¥nContains(¥"Deinonychus¥"): {0}", dinosaurs->Contains("Deinonychus")); Console::WriteLine("¥nInsert(2, ¥"Compsognathus¥")"); dinosaurs->Insert(2, "Compsognathus"); Console::WriteLine();

for each(String^ dinosaur in dinosaurs ) { Console::WriteLine(dinosaur); } Console::WriteLine("¥ndinosaurs[3]: {0}", dinosaurs[3]); Console::WriteLine("¥nRemove(¥"Compsognathus¥")"); dinosaurs->Remove("Compsognathus"); Console::WriteLine();

for each(String^ dinosaur in dinosaurs ) { Console::WriteLine(dinosaur); } dinosaurs->TrimExcess(); Console::WriteLine("¥nTrimExcess()"); Console::WriteLine("Capacity: {0}", dinosaurs->Capacity); Console::WriteLine("Count: {0}", dinosaurs->Count); dinosaurs->Clear(); Console::WriteLine("¥nClear()"); Console::WriteLine("Capacity: {0}", dinosaurs->Capacity); Console::WriteLine("Count: {0}", dinosaurs->Count); }

(19)

Capacity: 0 Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus Compsognathus Capacity: 8 Count: 5 Contains("Deinonychus"): True Insert(2, "Compsognathus") Tyrannosaurus Amargasaurus Compsognathus Mamenchisaurus Deinonychus Compsognathus dinosaurs[3]: Mamenchisaurus Remove("Compsognathus") Tyrannosaurus Amargasaurus Mamenchisaurus Deinonychus Compsognathus TrimExcess() Capacity: 5 Count: 5 Clear() Capacity: 5 Count: 0 */

参照

関連したドキュメント

私たちの行動には 5W1H

現実感のもてる問題場面からスタートし,問題 場面を自らの考えや表現を用いて表し,教師の

SVF Migration Tool の動作を制御するための設定を設定ファイルに記述します。Windows 環境 の場合は「SVF Migration Tool の動作設定 (p. 20)」を、UNIX/Linux

HORS

スライド5頁では

注意: Dell Factory Image Restore を使用す ると、ハードディスクドライブのすべてのデ

張力を適正にする アライメントを再調整する 正規のプーリに取り替える 正規のプーリに取り替える

システムであって、当該管理監督のための資源配分がなされ、適切に運用されるものをいう。ただ し、第 82 条において読み替えて準用する第 2 章から第