2017-01-08 5 views
0

配列は特定のサイズで定義されています。しかし、動的に拡大する配列が必要な場合は、Listクラス(名前空間System.Collections.Genericから)を使用します。しかし、このクラスはどのように機能しますか?リストはどのように動的に成長するのですか?Listクラスはどのように機能しますか? (System.Collections.Generic)

+3

[ソース](https://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs,cf7f4095e4de7646)を参照して、アイテムが追加されるときに内部配列を再割り当てします。 – Lee

+1

@GeorgeVovosそれは重複ではなく、その質問のタイトルはかなり間違っていました。 –

答えて

2
using System; 
using System.Collections.Generic; 

namespace ImmutableLists 
{ 
    class Program 
    { 
     static void Main() 
     { 
      List<int> nums = new List<int>(); ; 

      for (int i=0; i<=20; i++) 
      { 
       nums.Add(i); 
       Console.WriteLine("{0} : {1}", i, nums.Capacity); 
      } 

      Console.ReadKey(); 
     } 
    } 
} 

リストは変更不可能です。つまり、サイズを変更できません。これはどのように機能しますか?それらはスペースが割り当てられ、ヒットするとダンプされ、別のリストは前回の容量の2倍で設定されます&新しいものが形成されます。もちろん目には見えません。

関連する問題