循环遍历c#字典中的项目

时间:2012-03-01 20:26:30

标签: c#

我想对C#Dictionary中的每个对象做一些事情。 keyVal.Value似乎有点尴尬:

foreach (KeyValuePair<int, Customer> keyVal in customers) {
    DoSomething(keyVal.Value);
}

有没有更好的方法来做到这一点也很快?

5 个答案:

答案 0 :(得分:6)

Dictionary类有一个Values属性,您可以直接迭代:

foreach(var cust in customer.Values)
{
  DoSomething(cust);
}

另一种选择,如果您可以使用LINQ作为Arie van Someren在his answer中显示:

customers.Values.Select(cust => DoSomething(cust));

或者:

customers.Select(cust => DoSomething(cust.Value));

答案 1 :(得分:5)

foreach (Customer c in customers.Values)

答案 2 :(得分:4)

您可以随时遍历键并获取值。或者,您可以迭代这些值。

foreach(var key in customers.Keys)
{
    DoSomething(customers[key]);
}

foreach(var customer in customer.Values)
{
    DoSomething(customer);
}

答案 3 :(得分:3)

customers.Select( customer => DoSomething(customer.Value) );

答案 4 :(得分:1)

如果您关心的只是值而不是键,那么您可以使用IDictionary.Values进行迭代。

foreach (Customer val in customers.Values) {
    DoSomething(val);
}