2013年3月16日土曜日
ArrayListの例シリーズ - C#では、ArrayListに配列に変換する方法
以前の記事で '配列、ArrayListを変換'我々は、配列にArrayListを変換する方法について説明しました。今日は、ArrayList(または一般的なリスト)への配列を変換する方法についていくつかの例を見てみましょう。いくつかの状況では、配列に基づいて、ArrayListを作成する必要があるので、後で簡単にリストから項目を追加または削除できます。基本的には、少なくともそれを行うには二つの方法があります。一番簡単なのは、直接配列から新しいインスタンスを作成するためにArrayListのコンストラクタを使用することです。コンストラクタのオーバーロードバージョンは、ICollectionパラメータを受け入れます。 ArrayはICollectionインターフェイスを実装しているので、と、そうArrayListの新しいインスタンスを作成するコードの下に使用することができます:
文字列[] itemArray =新しい文字列[] {"item1から"、 "項目2" "項目3"};
ArrayListのArrayListを=新しいArrayList(itemArray);
我々はconvertionを行うために使用することができますもう一つの方法は、AddRangeメソッドです。コンストラクタと同じように、それは、ICollectionパラメータを受け入れます。使い方は似ています
文字列[] itemArray =新しい文字列[] {"item1から"、 "項目2" "項目3"};
ArrayListのarraylist2 =新しいArrayList(itemArray.Length)/ /可能性のあるパフォーマンスの問題を回避するために、ArrayListの初期サイズを設定します。
arraylist2.AddRange(itemArray);
これは第一のものより少し複雑ですが、我々はすでに、ArrayListを持っているとき、それは良い選択です。今や完全なコード例を見てみましょう:
/ /コードはメイビスによって作成され
/ /と。NET 4でVS2010上でテストされています
システムを使用して;
System.Collections.Generic使用して;
System.Linqのを使用して;
System.Textを使用して;
System.Collectionsのを使用して;
名前空間ConsoleApplication11
{
クラスプログラム
{
静的な無効メイン(文字列[] args)を
{
文字列[] itemArray =新しい文字列[] {"item1から"、 "項目2" "項目3"、 "item4"、 "item5"、 "item6"};
ArrayListのArrayListを=新しいArrayList(itemArray);
PrintIndexAndValues(ArrayListを);
/ / ArrayListの末尾にキュー要素をコピーします。
ArrayListのarraylist2 =新しいArrayList(itemArray.Length);
arraylist2.AddRange(itemArray);
PrintIndexAndValues(ArrayListを);
}
パブリック静的ボイドPrintIndexAndValues(ArrayListのマイリスト)
{
Console.WriteLineを( "配列のリストには、次の値が含まれています:");
ます。int i = 0;
foreachの(マイリスト内のオブジェクトo)
Console.WriteLineを( "\ T [{0}]:\ T {1}"、i + +は、O);
Console.WriteLineを();
}
}
/ *
アレイリストは、次の値が含まれています。
[0]:ITEM1
[1]:項目2
[2]:項目3
[3]:item4
[4]:item5
[5]:item6
アレイリストは、次の値が含まれています。
[0]:ITEM1
[1]:項目2
[2]:項目3
[3]:item4
[4]:item5
[5]:item6
}
この記事の最後で、私はこれらの2 convertionの方法についていくつかの先進的な話題をお話したいと思います。あなたはそれらの間に別のを知っていますか?我々は、ArrayListコンストラクタの内部を見てレッドゲートのNET Reflectorを使用する場合、我々は、彼らが実際に同じものが表示されます。初期化するために使用するものコンストラクタArrayListには、例外のチェック、サイズの初期化と私たちは第二の方法で使用するものと同じように同じですAddRangeメソッドです。コンストラクタのソースコードは以下のようなものです。
/ /コードはレッドゲートのでMicrosoft.NET \ Frameworkの\ v2.0.50727の\ mscorlib.dllを逆コンパイルからです。NET Reflectorを
公共のArrayList(ICollection内C)
{
(ウ== null)の場合
{
;新しいArgumentNullExceptionを( "C"、Environment.GetResourceString( "ArgumentNull_Collection"))投げる
}
this._items =新しいオブジェクト[c.Count]; / /この行は、ArrayListのサイズを設定することであり、それは我々が新しいArrayList(int)を呼び出すのと全く同じだ
this.AddRange(C);
}
今では自分でコードを試すには時間であり、私のページの先頭へのコメントを残すことを忘れないでください。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿