2016-11-05 86 views
1

我有下面的代码:打印字典值的简单方法?

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")); 
} 

有一种简单的方法来打印一个简单的方法在字典的值与Java?举例来说,我希望能够打印出类似这样:

员工与关键1:ID = 1,名称=约翰

员工与关键2:ID = 2,名称=亨利

..等。

谢谢。

对不起,我习惯了Java!

+4

嗯,当然,你可以循环对他们很容易,打印每个条目。你试过了什么,发生了什么?如果你不想多次循环,你可以写一个方法来做到这一点...... –

+1

为什么你有一个Java标记,如果这个问题是关于C#? – UnholySheep

+0

你有没有得到它的工作? – ItamarG3

回答

3

您可以使用foreach语句:

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

您可以定义一个IDictionary参考,并使其指向Dictionary对象

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

通过字典来循环,您可以使用

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

这类似于Java的HashMap<>

2

您可以使用foreach循环打印的字典里面所有的值。

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

谢谢,很容易理解的代码 – user127815

1

尝试使用foreach

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

,或者简单地使用LINQ:

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);