2010-12-14 12 views
74

piszę mój testcode i nie chcę wo napisz:Jak mogę zainicjować listę C# w tym samym wierszu, który ją zadeklaruję. (IEnumerable ciąg Collection Przykład)

List<string> nameslist = new List<string>(); 
nameslist.Add("one"); 
nameslist.Add("two"); 
nameslist.Add("three"); 

chciałbym napisać

List<string> nameslist = new List<string>({"one", "two", "three"}); 

Jednak { "jeden", "dwa", "three"} nie jest "IEnumerable string collection". Jak mogę zainicjować to w jednej linii przy użyciu IEnumerable Collection ciąg "

Odpowiedz

114
var list = new List<string> { "One", "Two", "Three" }; 

Zasadniczo składnia jest:

new List<Type> { Instance1, Instance2, Instance3 }; 

Która jest tłumaczony przez kompilator jako

List<string> list = new List<string>(); 
list.Add("One"); 
list.Add("Two"); 
list.Add("Three"); 
+0

Podoba mi się to nie- nawiasów metoda, co C# wersja to się zaczęło z? – SilverbackNet

+1

@SilverbackNet: C# 3. –

+9

To nie jest * całkiem * przetłumaczone na to, przynajmniej nie w ogóle.Zadanie do zmiennej dzieje * po * wszystkie połączenia 'Dodaj' mają zostały wykonane - to tak jakby używał zmiennej tymczasowej, z 'list = tmp;' na końcu.To może być ważne, jeśli * przypisujesz * wartość zmiennej –

13

zmienić kod do

List<string> nameslist = new List<string> {"one", "two", "three"}; 

lub

List<string> nameslist = new List<string>(new[] {"one", "two", "three"}); 
+0

jaki jest cel używania drugiej linii "Lista nameslist = new List (new [] {" one "," two "," three "}); " Kiedy możemy go użyć? Co to jest" nowa [] {...} "w drugiej składni: dlaczego nowe słowo kluczowe jest używane razem z nawiasem [] ??? – Tony

3
List<string> nameslist = new List<string> {"one", "two", "three"} ? 
3

Usuń nawiasy:

List<string> nameslist = new List<string> {"one", "two", "three"}; 
3

To zależy, która wersja C# używasz, począwszy od wersji 3.0 można użyć ...

List<string> nameslist = new List<string> { "one", "two", "three" }; 
6

Wystarczy stracić nawias:

var nameslist = new List<string> { "one", "two", "three" }; 
+0

Ups, wyglądasz, jakby pięć osób mnie do tego pobiło. –

Powiązane problemy