Не удается найти путь firefoxbinary. Установите путь firefox до использования драйвера firefox.
System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
foreach(KeyValuePair<string, string> entry in myDictionary)
{
// do something with entry.Value or entry.Key
}
Зависит от того, являетесь ли Вы после ключей или значений...
Из описания MSDN Dictionary(TKey, TValue)
Класса:
// When you use foreach to enumerate dictionary elements,
// the elements are retrieved as KeyValuePair objects.
Console.WriteLine();
foreach( KeyValuePair<string, string> kvp in openWith )
{
Console.WriteLine("Key = {0}, Value = {1}",
kvp.Key, kvp.Value);
}
// To get the values alone, use the Values property.
Dictionary<string, string>.ValueCollection valueColl =
openWith.Values;
// The elements of the ValueCollection are strongly typed
// with the type that was specified for dictionary values.
Console.WriteLine();
foreach( string s in valueColl )
{
Console.WriteLine("Value = {0}", s);
}
// To get the keys alone, use the Keys property.
Dictionary<string, string>.KeyCollection keyColl =
openWith.Keys;
// The elements of the KeyCollection are strongly typed
// with the type that was specified for dictionary keys.
Console.WriteLine();
foreach( string s in keyColl )
{
Console.WriteLine("Key = {0}", s);
}
Существует много опций. Мой любимый KeyValuePair
Dictionary<string, object> myDictionary = new Dictionary<string, object>();
// Populate your dictionary here
foreach (KeyValuePair<string,object> kvp in myDictionary)
{
// Do some interesting things
}
, можно также использовать Ключи и Наборы Значений
Если бы Вы пытаетесь использовать универсальный Словарь в C# как Вы, использовал бы ассоциативный массив на другом языке:
foreach(var item in myDictionary)
{
foo(item.Key);
bar(item.Value);
}
Или, если только необходимо выполнить итерации по набору ключей, использование
foreach(var item in myDictionary.Keys)
{
foo(item);
}
И наконец, если Вы только интересуетесь значениями:
foreach(var item in myDictionary.Values)
{
foo(item);
}
(Обращают внимание, что var
ключевое слово является дополнительным C# 3.0 и выше функции, Вы могли также использовать точный тип своих ключей/значений здесь)
Я сказал бы, что foreach является стандартным путем, хотя это, очевидно, зависит от того, что Вы ищете
foreach(var kvp in my_dictionary) {
...
}
, это, что Вы ищете?
Если говорят, Вы хотите выполнить итерации по набору значений по умолчанию, я полагаю, что можно реализовать IEnumerable<>, Где T является типом объекта значений в словаре, и "это" - Словарь.
public new IEnumerator<T> GetEnumerator()
{
return this.Values.GetEnumerator();
}
Я нашел этот метод в документации для класса DictionaryBase на MSDN:
foreach (DictionaryEntry de in myDictionary)
{
//Do some stuff with de.Value or de.Key
}
Это было единственным, я смог получить функционирование правильно в классе, который наследовался DictionaryBase.
a
в string a
объект ? Существуют уровни и уровни абстракции, которые исчезают, если Вы говорите, что все - object.imo
– ShinTakezou
15 June 2010 в 08:05
Ниже вы предложили выполнить итерацию
Dictionary<string,object> myDictionary = new Dictionary<string,object>();
//Populate your dictionary here
foreach (KeyValuePair<string,object> kvp in myDictionary) {
//Do some interesting things;
}
FYI, foreach
не работает, если значение имеет тип object.