2016-11-05 4 views
1

Ich habe den folgenden Code:Einfache Möglichkeit zum Drucken von Werten eines Wörterbuchs?

static void Main(string[] args) 
{ 
    // Add 5 Employees to a Dictionary. 
    var Employees = new Dictionary<int, Employee>(); 
    Employees.Add(1, new Employee(1, "John")); 
    Employees.Add(2, new Employee(2, "Henry")); 
    Employees.Add(3, new Employee(3, "Jason")); 
    Employees.Add(4, new Employee(4, "Ron")); 
    Employees.Add(5, new Employee(5, "Yan")); 
} 

Gibt es einen einfachen Weg, um die Werte des Wörterbücher auf einfache Art und Weise wie in Java zu drucken? Zum Beispiel möchte ich in der Lage sein, etwas zu drucken, wie:

Mitarbeiter mit der Taste 1: ID = 1, Name = John

Mitarbeiter mit Schlüssel 2: Id = 2, Name = Henry

.. etc ..

Vielen Dank.

Sorry, bin zu Java gewöhnt!

+4

Na sicher, können Sie eine Schleife über sie leicht, jeden Eintrag ausdrucken. Was hast du versucht und was ist passiert? Wenn Sie die Schleife nicht mehr als einmal einfügen möchten, können Sie eine Methode dazu schreiben ... –

+1

Warum haben Sie ein Java-Tag, wenn diese Frage C# betrifft? – UnholySheep

+0

Hast du es zur Arbeit gebracht? – ItamarG3

Antwort

3

können Sie foreach-Anweisung:

foreach(var pair in Employees) 
{ 
    Console.WriteLine($"Employee with key {pair.Key}: Id={pair.Value.Id} Name={pair.Value.Name}"); 
} 
0

Sie können eine IDictionary Referenz, definieren und es zu einem Dictionary Objekt

IDictionary<int, Employee> employees = new Dictionary<int,Employee>(); 
employees.Add(1, new Employee(1, "John")); 
//add the rest of the employees 

einer Schleife durch das Wörterbuch Punkt machen, Sie

foreach(KeyValuePair<int, Employee> entry in employees) 
{ 
    Console.WriteLine("Employee with key "+entry.Key+": Id="+entry.Value.GetId()+", Name= "+entry.Value.GetName()); 
} 

Dies ist ähnlich wie Java HashMap<> verwenden können.

2

Sie die foreach-Schleife verwenden, kann den Wert innerhalb des Wörterbuch zu drucken.

foreach(var employe in Employees) { 
    Console.WriteLine(string.Format("Employee with key {0}: Id={1}, Name= {2}",employe.Key, employe.Value.Id, employe.Value.Name)); 
} 
+0

danke, sehr einfacher Code zu verstehen – user127815

1

Versuchen die foreach mit:

foreach (var res in Employees) 
{ 
    Console.WriteLine("Employee with key {0}: ID = {1}, Name = {2}", res.Key, res.Value.Id, res.Value.Name); 
} 

oder einfach LINQ mit:

var output = Employees.Select(res => "Employee with key " + res.Key + ": ID = " + res.Value.Id + ", Name = " + res.Value.Name); 
1
var items = Employees.Select(kvp => string.Format("Employee with key {0} : Id={1}, Name={2}", kvp.Key, kvp.Value.Id, kvp.Value.Name); 

var text = string.Join(Environment.NewLine, items); 
Verwandte Themen