F#-可変リスト
ザ・ List<'T> classは、インデックスでアクセスできるオブジェクトの厳密に型指定されたリストを表します。
これは、Listクラスの変更可能な対応物です。インデックスからアクセスできるという点で配列に似ていますが、配列とは異なり、リストのサイズを変更できます。したがって、宣言時にサイズを指定する必要はありません。
可変リストの作成
リストは、 newキーワードとリストのコンストラクターの呼び出し。次の例はこれを示しています-
(* Creating a List *)
open System.Collections.Generic
let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
プログラムをコンパイルして実行すると、次の出力が生成されます。
0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia
List(T)クラス
List(T)クラスは、インデックスでアクセスできるオブジェクトの厳密に型指定されたリストを表します。リストを検索、ソート、および操作するためのメソッドを提供します。
次の表に、List(T)クラスのプロパティ、コンストラクター、およびメソッドを示します。
プロパティ
プロパティ | 説明 |
---|---|
容量 | 内部データ構造がサイズ変更せずに保持できる要素の総数を取得または設定します。 |
カウント | List(T)に含まれる要素の数を取得します。 |
項目 | 指定されたインデックスで要素を取得または設定します。 |
コンストラクター
コンストラクタ | 説明 |
---|---|
リスト(T)() | 空でデフォルトの初期容量を持つList(T)クラスの新しいインスタンスを初期化します。 |
List(T)(IEnumerable(T)) | 指定されたコレクションからコピーされた要素を含み、コピーされた要素の数に対応するのに十分な容量を持つList(T)クラスの新しいインスタンスを初期化します。 |
リスト(T)(Int32) | 空で、指定された初期容量を持つList(T)クラスの新しいインスタンスを初期化します。 |
方法
メソッド | 説明 |
---|---|
追加 | List(T)の最後にオブジェクトを追加します。 |
AddRange | 指定されたコレクションの要素をList(T)の最後に追加します。 |
AsReadOnly | 現在のコレクションの読み取り専用IList(T)ラッパーを返します。 |
BinarySearch(T) | デフォルトの比較子を使用して、ソートされたリスト(T)全体で要素を検索し、要素のゼロベースのインデックスを返します。 |
BinarySearch(T、IComparer(T)) | 指定された比較子を使用して、ソートされたリスト(T)全体で要素を検索し、要素のゼロベースのインデックスを返します。 |
BinarySearch(Int32、Int32、T、IComparer(T)) | 指定された比較子を使用して、ソートされたリスト(T)内の要素の範囲で要素を検索し、要素のゼロベースのインデックスを返します。 |
晴れ | List(T)からすべての要素を削除します。 |
含まれています | 要素がList(T)にあるかどうかを判別します。 |
ConvertAll(TOutput) | 現在のList(T)の要素を別のタイプに変換し、変換された要素を含むリストを返します。 |
CopyTo(T []) | List(T)全体を、ターゲット配列の先頭から始めて、互換性のある1次元配列にコピーします。 |
CopyTo(T []、Int32) | List(T)全体を、ターゲット配列の指定されたインデックスから始めて、互換性のある1次元配列にコピーします。 |
CopyTo(Int32、T []、Int32、Int32) | List(T)から互換性のある一次元配列に、ターゲット配列の指定されたインデックスから開始して、要素の範囲をコピーします。 |
Equals(Object) | 指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判別します。(オブジェクトから継承されます。) |
存在する | List(T)に、指定された述部によって定義された条件に一致する要素が含まれているかどうかを判別します。 |
ファイナライズ | オブジェクトがガベージコレクション(オブジェクトから継承)によって再利用される前に、リソースを解放し、他のクリーンアップ操作を実行できるようにします。 |
検索 | 指定された述語によって定義された条件に一致する要素を検索し、List(T)全体の中で最初に出現したものを返します。 |
FindAll | 指定された述部によって定義された条件に一致するすべての要素を取得します。 |
FindIndex(Predicate(T)) | 指定された述語によって定義された条件に一致する要素を検索し、List(T)全体の中で最初に出現するゼロベースのインデックスを返します。 |
FindIndex(Int32、Predicate(T)) | 指定された述部によって定義された条件に一致する要素を検索し、指定されたインデックスから最後の要素までのList(T)内の要素の範囲内で最初に出現したゼロベースのインデックスを返します。 |
FindIndex(Int32、Int32、Predicate(T)) | 指定された述語によって定義された条件に一致する要素を検索し、指定されたインデックスから始まり、指定された数の要素を含むList(T)内の要素の範囲内で最初に出現するゼロベースのインデックスを返します。 |
FindLast | 指定された述語によって定義された条件に一致する要素を検索し、List(T)全体の中で最後に出現したものを返します。 |
FindLastIndex(Predicate(T)) | 指定された述語によって定義された条件に一致する要素を検索し、List(T)全体の中で最後に出現したゼロベースのインデックスを返します。 |
FindLastIndex(Int32、Predicate(T)) | 指定された述部によって定義された条件に一致する要素を検索し、最初の要素から指定されたインデックスまでのList(T)内の要素の範囲内で最後に出現したゼロベースのインデックスを返します。 |
FindLastIndex(Int32、Int32、Predicate(T)) | 指定された述部によって定義された条件に一致する要素を検索し、指定された数の要素を含み、指定されたインデックスで終了するList(T)内の要素の範囲内で最後に出現したゼロベースのインデックスを返します。 |
ForEach | List(T)の各要素に対して指定されたアクションを実行します。 |
GetEnumerator | List(T)を反復処理する列挙子を返します。 |
GetHashCode | デフォルトのハッシュ関数として機能します。(オブジェクトから継承されます。) |
GetRange | ソースList(T)内の要素の範囲の浅いコピーを作成します。 |
GetType | 現在のインスタンスのタイプを取得します。(オブジェクトから継承されます。) |
IndexOf(T) | 指定されたオブジェクトを検索し、List(T)全体の中で最初に出現したゼロベースのインデックスを返します。 |
IndexOf(T、Int32) | 指定されたオブジェクトを検索し、指定されたインデックスから最後の要素までのList(T)内の要素の範囲内で最初に出現したゼロベースのインデックスを返します。 |
IndexOf(T、Int32、Int32) | 指定されたオブジェクトを検索し、指定されたインデックスから始まり、指定された数の要素を含むList(T)内の要素の範囲内で最初に出現するゼロベースのインデックスを返します。 |
インサート | 指定されたインデックスのList(T)に要素を挿入します。 |
InsertRange | コレクションの要素を、指定されたインデックスのList(T)に挿入します。 |
LastIndexOf(T) | 指定されたオブジェクトを検索し、List(T)全体の中で最後に出現したゼロベースのインデックスを返します。 |
LastIndexOf(T、Int32) | 指定されたオブジェクトを検索し、最初の要素から指定されたインデックスまでのList(T)内の要素の範囲内で最後に出現したゼロベースのインデックスを返します。 |
LastIndexOf(T、Int32、Int32) | 指定されたオブジェクトを検索し、指定された数の要素を含み、指定されたインデックスで終了するList(T)内の要素の範囲内で最後に出現したゼロベースのインデックスを返します。 |
MemberwiseClone | 現在のオブジェクトの浅いコピーを作成します。(オブジェクトから継承されます。) |
削除する | List(T)から特定のオブジェクトの最初の出現を削除します。 |
すべて削除する | 指定された述部によって定義された条件に一致するすべての要素を削除します。 |
RemoveAt | List(T)の指定されたインデックスにある要素を削除します。 |
RemoveRange | List(T)から要素の範囲を削除します。 |
逆行する() | List(T)全体の要素の順序を逆にします。 |
Reverse(Int32、Int32) | 指定された範囲内の要素の順序を逆にします。 |
ソート() | デフォルトの比較子を使用して、List(T)全体の要素を並べ替えます。 |
並べ替え(比較(T)) | 指定されたシステムを使用して、List(T)全体の要素を並べ替えます。比較(T)。 |
Sort(IComparer(T)) | 指定された比較子を使用して、List(T)全体の要素を並べ替えます。 |
Sort(Int32、Int32、IComparer(T)) | 指定された比較子を使用して、List(T)内の要素の範囲内の要素を並べ替えます。 |
ToArray | List(T)の要素を新しい配列にコピーします。 |
ToString | 現在のオブジェクトを表す文字列を返します。(オブジェクトから継承されます。) |
TrimExcess | リスト(T)の要素の数がしきい値よりも小さい場合、その数に容量を設定します。 |
TrueForAll | List(T)内のすべての要素が、指定された述部によって定義された条件に一致するかどうかを判別します。 |
例
(* Creating a List *)
open System.Collections.Generic
let booksList = new List<string>()
booksList.Add("Gone with the Wind")
booksList.Add("Atlas Shrugged")
booksList.Add("Fountainhead")
booksList.Add("Thornbirds")
booksList.Add("Rebecca")
booksList.Add("Narnia")
printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.Insert(2, "Roots")
printfn("after inserting at index 2")
printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
booksList.RemoveAt(3)
printfn("after removing from index 3")
printfn"Total %d books" booksList.Count
booksList |> Seq.iteri (fun index item -> printfn "%i: %s" index booksList.[index])
プログラムをコンパイルして実行すると、次の出力が生成されます。
Total 6 books
0: Gone with the Wind
1: Atlas Shrugged
2: Fountainhead
3: Thornbirds
4: Rebecca
5: Narnia
after inserting at index 2
Total 7 books
0: Gone with the Wind
1: Atlas Shrugged
2: Roots
3: Fountainhead
4: Thornbirds
5: Rebecca
6: Narnia
after removing from index 3
Total 6 books
0: Gone with the Wind
1: Atlas Shrugged
2: Roots
3: Thornbirds
4: Rebecca
5: Narnia