2013-06-29 11 views
5

Czy istnieje jakiś skrót w języku C#, który pozwoli uprościć następująco:c skrót # składnia pominąć nazwę obiektu, gdy odnosząc się do niej kilka razy z rzędu

List<string> exampleList = new List<string>(); 
exampleList.Add("Is"); 
exampleList.Add("it"); 
exampleList.Add("possible"); 

i na coś takiego:

var exampleList = new List<string>(); 
exampleList { 
.Add("is"); 
.Add("it"); 
.Add("possible"); 
} 

wiem, że to możliwe, aby przypisać właściwości podczas deklaracji tak:

var myObject = new MyObject{ 
Id = "Useful", 
Name = "Shortcut" 
}; 

byłoby intere żądają, aby wiedzieć, czy istnieją inne użyteczne skróty, ale nie mogę znaleźć żadnego.

Odpowiedz

5

można napisać metodę rozszerzenia:

public static class ListExt 
{ 
    public static List<T> Append<T>(this List<T> self, params T[] items) 
    { 
     if (items != null && self != null) 
      self.AddRange(items); 

     return self; 
    } 
} 

a następnie używać go jak to:

List<string> list = new List<string>(); 

list.Append("Or", "you", "can", "use", "an", "extension", "method"); 

list.Append("Or").Append("like").Append("this"); 
6
var exampleList = new List<string>() { 
    "Yes", "kinda", "with", "collection", "initializers" }; 

pamiętać, że można to zrobić także za Wieloparametrowa Dodaj metod, takich jak słowniki:

var lookup = new Dictionary<string, int> { 
    {"abc", 124}, {"def",456} 
}; 
+0

Thx. Ale co powiesz na to, kiedy obiekt jest już zainicjalizowany i chcesz go wielokrotnie odnieść i pominąć jego nazwę? – CoolCodeBro

+0

@CoolCodeBro, a następnie nie. Po prostu użyj nazwy wiele razy. Możesz napisać płynną metodę rozszerzenia api - ale naprawdę nie ma sensu –

Powiązane problemy