在c#字典中循环项目
我想对C#Dictionary中的每个对象做点什么在c#字典中循环项目,c#,C#,我想对C#Dictionary中的每个对象做点什么keyVal.Value似乎有点尴尬: foreach (KeyValuePair<int, Customer> keyVal in customers) { DoSomething(keyVal.Value); } foreach(客户中的KeyValuePair-keyVal){ 剂量测定法(关键值); } 是否有一种更好的方法可以快速完成此任务?该类有一个可以直接迭代的属性: foreach (Customer c
keyVal.Value
似乎有点尴尬:
foreach (KeyValuePair<int, Customer> keyVal in customers) {
DoSomething(keyVal.Value);
}
foreach(客户中的KeyValuePair-keyVal){
剂量测定法(关键值);
}
是否有一种更好的方法可以快速完成此任务?该类有一个可以直接迭代的属性:
foreach (Customer c in customers.Values)
foreach(var cust in customer.Values)
{
DoSomething(cust);
}
另一种选择是,如果您可以像Arie van Someren在中显示的那样使用LINQ:
或:
如果您只关心值,而不关心键,那么可以使用
IDictionary.values
进行迭代
foreach (Customer val in customers.Values) {
DoSomething(val);
}
您始终可以迭代键并获取值。或者,您可以只迭代这些值
foreach(var key in customers.Keys)
{
DoSomething(customers[key]);
}
或
你只是想要这些值吗?如果是这样,请使用
customers.Values
。这假设DoSomething
返回一个值。您需要在linq中使用.value
cust
在此类型中属于KeyValuePair
context@KyleTrauberman-谢谢你的更正。我还添加了另一种选择。
foreach (Customer val in customers.Values) {
DoSomething(val);
}
foreach(var key in customers.Keys)
{
DoSomething(customers[key]);
}
foreach(var customer in customer.Values)
{
DoSomething(customer);
}
customers.Select( customer => DoSomething(customer.Value) );