SORU
20 Aralık 2010, PAZARTESİ


İki (veya daha fazla) C biri haline listeleri birleştirme# .NET

Tek liste halinde iki veya daha fazla listeleri dönüştürmek mümkün oluyor .NET C# kullanarak?

Örneğin,

public static List<Product> GetAllProducts(int categoryId){ .... }
.
.
.
var productCollection1 = GetAllProducts(CategoryId1);
var productCollection2 = GetAllProducts(CategoryId2);
var productCollection3 = GetAllProducts(CategoryId3);

CEVAP
20 Aralık 2010, PAZARTESİ


Kontrol ETMENİZ Concat ToList yöntemleri kullanabilirsiniz:

var allProducts = productCollection1.Concat(productCollection2)
                                    .Concat(productCollection3)
                                    .ToList();

Bunu yapmak için daha etkili yollar vardır unutmayın - yukarıdaki temelde tüm girişleri döngü, bir dinamik olarak oluşturma tampon bulunur. Başlangıç boyutunu tahmin edebileceğiniz gibi, bu dinamik boyutlandırma... senin çok ihtiyacın yokolabilirkullanımı:

var allProducts = new List<Product>(productCollection1.Count  
                                    productCollection2.Count  
                                    productCollection3.Count);
allProducts.AddRange(productCollection1);
allProducts.AddRange(productCollection2);
allProducts.AddRange(productCollection3);

(AddRange verimlilik ICollection<T> kasalı özel.)

Eğer gerçekten olsa yoksa bu yaklaşım almazdım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andytokkallos

    Andytokkallo

    27 Kasım 2007
  • infiniTuts

    infiniTuts

    18 Ocak 2012
  • Video Copilot

    Video Copilo

    21 EYLÜL 2006