2016-06-01 8 views
2

In Java können wir eine Arraylist und HashMap mit anonymer Klassendeklaration Syntax initialisieren alseinleitet Sammlung in C# ähnlich wie Java anonyme Klasse Syntax

public static final List<HashMap<String,String>> data 
= new ArrayList<HashMap<String,String>>(){ 
{ 
add(
    new HashMap<String, String>() 
    {{ 
     put("name", "My Name"); 
     put("alias", "My Name"); 
    }} 
); 
}; 

folgt Können wir das gleiche in C# zu tun? in den neuesten Windows 10 Programmierung?

Antwort

4

Die Initialisierung der Sammlung ist auch eine Funktion von C#. Die Syntax zum Initiieren einer Auflistung in C# 4.0 ähnelt der von Ihnen gezeigten.

private static List<Dictionary<string, string>> data = 
    new List<Dictionary<string,string>>() 
    { 

     new Dictionary<string, string>() 
      { 
       { "name", "My Name" }, 
       {"alias", "My Name" } 
      }, 
     new Dictionary<string, string>() 
      { 
       { "name2", "My Name2" }, 
       {"alias2", "My Name2" } 
      } 
    }; 

Weitere Informationen finden Sie in der feature's documentation. (Click here für die Dokumentation speziell für C# 4.0/Visual Studio 2010.)

+1

Sie können die Klammern bei der Verwendung der Auflistungs- und Objektinitialisierer verlassen, und Sie übergeben keine Argumente an einen Konstruktor. Sorgt für eine etwas sauberere Syntax. – mason

+0

@mason Ich würde sagen, es ist ziemlich ambig –