我想對C#詞典中的每個對象做些什麼。 keyVal.Value
似乎有點尷尬:循環在c#詞典中的項目
foreach (KeyValuePair<int, Customer> keyVal in customers) {
DoSomething(keyVal.Value);
}
有沒有更好的方式來做到這一點,也快?
我想對C#詞典中的每個對象做些什麼。 keyVal.Value
似乎有點尷尬:循環在c#詞典中的項目
foreach (KeyValuePair<int, Customer> keyVal in customers) {
DoSomething(keyVal.Value);
}
有沒有更好的方式來做到這一點,也快?
的Dictionary
類有一個Values
屬性,您可以直接遍歷:
foreach(var cust in customer.Values)
{
DoSomething(cust);
}
的選擇,如果你可以使用LINQ作爲阿里麪包車Someren顯示his answer:
customers.Values.Select(cust => DoSomething(cust));
或者:
customers.Select(cust => DoSomething(cust.Value));
你需要'.Value'在你的linq中。在這種情況下'cust'的類型是'KeyValuePair
@KyleTrauberman - 感謝您的更正。我還增加了另一種選擇。 – Oded 2012-03-01 20:41:34
foreach (Customer c in customers.Values)
如果您關心的只是值而不是鍵,那麼您可以使用IDictionary.Values
進行迭代。
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));
這裏假設'DoSomething'返回一個值。 – 2012-03-01 20:31:54
你* *只是希望值是多少?如果是這樣,請使用'customers.Values'。 – Gabe 2012-03-01 20:28:35