ホームページ > バックエンド開発 > C#.Net チュートリアル > C#のArrayとArrayListの違いを詳しく解説

C#のArrayとArrayListの違いを詳しく解説

黄舟
リリース: 2017-03-28 11:44:20
オリジナル
1869 人が閲覧しました

この記事では、C#ArrayとArrayListの違いについての関連情報を主に紹介しますので、必要な方は

C#

1のArrayとArrayListの詳細な説明と違いを参照してください。 . Array の使用法

  type[]  typename=new type[size];
ログイン後にコピー

または

 type[]  typename=new type[]{ };
ログイン後にコピー

配列型 変数 は宣言と同時にインスタンス化する必要があります (初期化する場合、少なくとも 配列 のサイズを初期化する必要があります)

通常は int[] 、string[]... 実際には、次のように array 配列 を宣言します。

 string [] srt=new string[]{"a","b"};

     int[] a=new int[2]; string [] srt=new string[3];
ログイン後にコピー

(1): type

data type

を欠落させることはできず、int[] a=new Array[ とは異なり、統一する必要があります。 ];(2): 配列のサイズを欠落させることはできません。そうでない場合、配列は固定長メモリであるため、C# はそれをエラーとみなします。

(3): 右側は角かっこです。 ] ではなく ()

注: array 配列には add、clear、addRange.. メソッドは提供されていませんが、次のように値

を直接設定または取得します。

2番目、C# ArrayList配列の使用法:

var arrayList = new ArrayList();

      arrayList.Add(1);
      arrayList.Add(2);
      arrayList.Add(50.0); //在.net 4.0 支持。具体为什么还没有研究 
      foreach (var array in arrayList)
      {
        Console.WriteLine(array);
      }
ログイン後にコピー
3、ArrayListとArray間の変換

 var arrayList = new List<int>();
      arrayList.Add(1);
      arrayList.Add(2);
      arrayList.Add(50);

      //ArrayList 数组中的值拷贝到Array中去
      int[] array1=new int[arrayList.Count];
      arrayList.CopyTo(array1); //方法一
      int[] array2 = arrayList.ToArray(); //方法二
ログイン後にコピー
4、[ArrayとArrayListの違い]

#1。宣言と同時にインスタンス化する必要がありますが (少なくとも配列のサイズを初期化する必要があります)、ArrayList は最初に宣言するだけで済みます。

例:

int[] array = new array[3];
 或 int[] array = {1,2,3};
 或 ArrayList myList = new ArrayList();
ログイン後にコピー

これらはすべて正当ですが、int[] 配列を直接使用することは受け入れられません。

#2. ArrayList は異種オブジェクトを格納できるのに対し、Array は同種の

オブジェクト

のみを格納できます。

同型オブジェクトは、同じ型のオブジェクトを参照します。配列が int[] として宣言されている場合、String[] は整数データのみを格納できますが、
object

として宣言されている場合は、整数データのみを格納できます。 [] 配列を除く。

ArrayList は、さまざまなタイプのデータを格納できます (ボックス化された Object オブジェクトを格納するためです。実際、ArrayList は、オブジェクトをカプセル化するために "object[] _items;" などのプライベート フィールドを使用します。)#3 CLR マネージドのストレージ メソッドペア

Array は常に連続的に格納されますが、ArrayList は必ずしも連続的に格納されるわけではありません。

#4 初期化サイズ

配列オブジェクト

は指定されたサイズにのみ初期化する必要があり、作成後の配列のサイズは固定です

ArrayListのサイズは動的に指定でき、そのサイズは初期化時に指定されますが、未指定のままにすることもできます。つまり、オブジェクトのスペースを任意に増やすことができます。 #5 Array では項目を自由に追加したり削除したりすることはできませんが、ArrayList では任意の位置に項目を挿入したり削除したりできます。

5. [Array と ArrayList の類似点]

#1 どちらもインデックスを持っています。つまり、インデックスを通じて任意の項目を直接取得および変更できます。

#2 作成されたオブジェクトはマネージド ヒープに配置されます。 #3 どちらも自分自身を列挙できます (これらはすべて IEnumerable インターフェイスを実装しているため)。

6. [ArrayListの一部の機能]

var arrayList = new List<int>(2);
 Console.WriteLine(arrayList.Capacity);
      
      int size = 2;
      for (int i = 0; i < size; i++)
      {
        arrayList.Add(i);
      }
   
      Console.WriteLine("compressed capacity:"+arrayList.Capacity);
ログイン後にコピー

サイズが2の場合、出力結果の「現在の容量」は2、

サイズが3または4の場合、「現在の容量」は4、いつサイズが 5 ~ 8 の場合、「電流容量」は 8、 サイズが 9 ~ 16 の場合、「電流容量」は 16、

実験を通じて、実際の値が変化するたびに結論を導き出すことができます。 ArrayList 内のオブジェクトの数 (ArrayList.Count) が独自の容量しきい値を超えると、しきい値は自動的に 2 倍になります

 ArrayList myList = new ArrayList(5);

      for (int i = 0; i < 3; i++)
      {
        myList.Add(i);
      }
      Console.WriteLine("actual capacity:" + myList.Capacity);
      myList.TrimToSize();
      Console.WriteLine("compressed capacity:" + myList.Capacity);
      
      Console.ReadLine();
ログイン後にコピー

出力:
actual capacity:5
compressed capacity:3
ログイン後にコピー

以上がC#のArrayとArrayListの違いを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート