2016-03-31 9 views
0

私はList<T>のサイズを変更したいと思います。すなわち、いくつかの条件に関してリストのカウントを変更する。サイズ変更リスト<T>

private MyModel[] viewPages = GetPagesFromAPI().ToArray(); 

if (viewPages.Count % 6 == 0) 
{ 
    Array.Resize(ref newViewPages, viewPages.Length/6); 
} 
else 
{ 
    Array.Resize(ref newViewPages, viewPages.Length/6 + 1); 
} 

をしかし、私はこれが私のアプリケーションの上に重いだろうとメモリの問題を引き起こす可能性があるため、これは、それを行うための適切な方法ではありません信じて - :今、IAMがそのような配列を使用してそれをやって。 List<MyModel> viewPageListのようなものを使って私ができることはありますか?

何か助けていただければ幸いです。

+0

あなたが 'List ' – konkked

答えて

3

私はあなたがList<T>の目的を誤解している私のList<T>

のサイズを変更したいです。定義によって、リストは自動サイズ変更コレクションであり、手動でサイズを変更する必要はありません。要素を追加すると、内部配列のバッキングストレージがチェックされ、必要なときにサイズが増加します(現在の実装の詳細がバッキングストアを倍増します)。

// Adds the given object to the end of this list. The size of the list is 
// increased by one. If required, the capacity of the list is doubled 
// before adding the new element. 
public void Add(T item) 
{ 
    if (_size == _items.Length) EnsureCapacity(_size + 1); 
    _items[_size++] = item; 
    _version++; 
} 

EnsureCapacityは補助配列は、十分なストレージを持っていることを確認します。

これはList<T>.Addがどのように実装されるかです。