2017-12-29 15 views
-3

List.CapacityがList.Capacityが

コード

var xx = new List<int>();  
xx.Add(1); 
int xxxx = xx.Capacity;// result is 4 and change to 8,12,16 while adding new item to xx list. 

を働いていない。しかし、容量がしばらくの間は手動

var xx = new List<int>(1); // or xx.Capacity = 1; 
xx.Add(1); 
int xxxx = xx.Capacity;// result is always showing 1 does not increasing like 5, 9, 13... 
容量を設定して増加しないを意味し、働いていないされて働いていません
+4

能力は、あなたがそれに追加しましたどのように多くの事 'カウント/ Length' –

+0

ではないのですか?言っていますか一つだけ? –

+0

私は3つの項目を追加しました..しかしそれでも1を返します –

答えて

0

容量

内部データ構造は、サイズ変更せずに保持することができる要素の合計数を取得または設定します。

容量は0 or 2^nの形式で再評価され、5はそのための選択肢ではありません。

var lst = new List<string>(1);    

lst.Add("T1"); 
lst.Add("T2"); 
lst.Add("T3"); 
lst.Add("T4"); 
lst.Add("T5"); 

と、これはすぐにウィンドウが

lst.Count 0 lst.Capacity 1 lst.Count 1 lst.Capacity 1 lst.Count 2 lst.Capacity 2 lst.Count 3 lst.Capacity 4 lst.Count 4 lst.Capacity 4 lst.Count 5 lst.Capacity 8

0

リストに値を追加すると、容量が1のリストが宣言されている場合、容量も自動的に増加します。リストの最初の項目を追加すると、容量が4およびthあなたが豊富で5番目のアイテムを追加するには容量を4で増やしてください。結果は8です。

リストの容量は、現在のオブジェクトとオブジェクトを追加するために現在リストに設定されているメモリ量を表します。リストの数は、実際にリストに追加されたアイテムの数です。参考文献:List<> Capacity returns more items than added

var xx = new List<int>();  
    xx.Add(1);  
    int xxxx = xx.Capacity; 
    Console.WriteLine(xxxx); // output : 4 
    xx.Add(2);  
    xx.Add(3);  
    xx.Add(4);  
    xx.Add(5);  
    xxxx = xx.Capacity; 
    Console.WriteLine(xxxx); // output : 8 
+0

期待されている出力は5 –

+0

デフォルトではリスト容量は0 –

+4

@RameshRajendranあなたが嫌になっていないクラスから何かを期待するのは奇妙です。ソースコードを見て、回答を見つけてくださいhttps://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs,110 – Backs