0
配列は特定のサイズで定義されています。しかし、動的に拡大する配列が必要な場合は、Listクラス(名前空間System.Collections.Genericから)を使用します。しかし、このクラスはどのように機能しますか?リストはどのように動的に成長するのですか?Listクラスはどのように機能しますか? (System.Collections.Generic)
配列は特定のサイズで定義されています。しかし、動的に拡大する配列が必要な場合は、Listクラス(名前空間System.Collections.Genericから)を使用します。しかし、このクラスはどのように機能しますか?リストはどのように動的に成長するのですか?Listクラスはどのように機能しますか? (System.Collections.Generic)
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倍で設定されます&新しいものが形成されます。もちろん目には見えません。
[ソース](https://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs,cf7f4095e4de7646)を参照して、アイテムが追加されるときに内部配列を再割り当てします。 – Lee
@GeorgeVovosそれは重複ではなく、その質問のタイトルはかなり間違っていました。 –