2016-03-31 17 views
0

List<T> numaralı telefonumu yeniden boyutlandırmak istiyorum. yani. Listenin sayısını bazı koşullara göre değiştirmek.Yeniden Boyutlandırma Listesi <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); 
} 

Ama bu benim uygulamaya ağır olur ve hafıza sorunlarına neden olabilir çünkü bu, bunu yapmak için uygun bir yol değildir inanıyoruz: - Şu anda, IAM şöyle Array kullanarak yapıyor. List<MyModel> viewPageList gibi bir şey kullanarak yapabileceğim bir yolu var mı?

Herhangi bir yardım için teşekkür ederiz.

+0

Bir "List " kullanmıyor olmanızın herhangi bir nedeni – konkked

cevap

3

Ben Bir List<T> amacını yanlış anlamış benim List<T>

boyutlandırmak istiyorum. Tanım olarak, bir liste otomatik yeniden boyutlandırma koleksiyonudur, elle yeniden boyutlandırmaya gerek yoktur. Öğeleri ekledikçe, dahili dizi yedekleme deposunu kontrol edecek ve gerektiğinde boyutunu artıracaktır (geçerli uygulama ayrıntısı depolamayı iki katına çıkaracaktır).

Bu List<T>.Add uygulanan nasıl:

// 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 destek dizisi yeterli depolamaya sahiptir emin olacaktır.