2010-01-04 27 views

cevap

27

kullandığınız takdirde bu .AddRange() yöntemini

http://msdn.microsoft.com/en-us/library/z883w3dc.aspx

+0

Bu en verimli mi, yoksa en uygun yol? –

+1

pstst .AddRange, Java şu tarafta -> – blu

+0

@Ipthnc, "Foreach()" ile birleştirilmiş, List.Add() 'dan başka bir yol bilmiyorum. Ama bu en uygun yoldur. –

1

yapmalıdır C# 3.0/.Net 3.5:

List<SomeType> list1; 
List<SomeType> list2; 

var list = list1.Concat(list2).ToList(); 
10

kullanma hile

List<Type> list1; 
List<Type> list2; 

List<Type> combined; 
combined.AddRange(list1); 
combined.AddRange(list2); 
+0

Bir açıklama olarak, bu sadece .NET 3.0, .NET 3.5 gerektirir (uzantısı yöntemleri C# 3.0 bir parçasıdır, ancak onları tanımlayan System.Linq.Enumerable sınıfı bir parçasıdır. NET 3.5) –

+0

@Adam Robinson: Kesinlik için teşekkürler. –

+1

Bu, VS2008 ve LinqBridge kullanırsanız .NET 2.0 üzerinde çalışabilir;) –

16

Öğeleri bir listeden diğerine kolayca ekleyebilirsiniz:

list1.AddRange(list2); 

bir yenisi listeleri tutmak ve oluşturmak isterseniz:

List<T> combined = new List<T>(list1); 
combined.AddRange(list2); 

Veya LINQ yöntemlerini kullanarak:

List<T> combined = list1.Concat(list2).ToList(); 

Sen içeren bir liste oluşturarak biraz daha iyi bir performans elde edebilirsiniz Öğeleri eklemeden önce doğru kapasite:

List<T> combined = new List<T>(list1.Count + list2.Count); 
combined.AddRange(list1); 
combined.AddRange(list2); 
+0

Katılma anahtar kelimesi ile bu şekilde bildirilen arasındaki fark nedir? –

İlgili konular