Необходимо создать канал (с CreatePipe () ), затем присоединить stdout к, он - конец записи с SetStdHandle () , затем можно читать из конца чтения канала с ReadFile () и поместить текст, который Вы получаете оттуда где угодно, Вам нравится.
Вы можете выполнить цикл foreach
в словаре, который будет давать вам DictionaryEntry
на каждой итерации. Вы можете получить доступ к свойствам Key
и Value
из этого объекта.
foreach (DictionaryEntry value in KeyValue)
{
// use value.Key and value.Value
}
Одного должно быть достаточно:
foreach (string key in KeyValue.Keys)
{
string value = KeyValue[key];
// Process key/value pair here
}
Или я неправильно понял ваш вопрос?
foreach(DictionaryEntry entry in KeyValue)
{
// ...
}
Вы можете просто перечислить в самом словаре. Он должен возвращать последовательность экземпляров DictionaryEntry.
Лучшей альтернативой является использование Dictionary
.
StringDictionary можно повторять как элементы DictionaryEntry
:
foreach (DictionaryEntry item in KeyValue) {
Console.WriteLine("{0} = {1}", item.Key, item.Value);
}
Я бы посоветовал вам использовать более свежий класс Dictionary
вместо этого:
Dictionary<string, string> KeyValue = new Dictionary<string, string>();
KeyValue.Add("A", "Load");
KeyValue.Add("C", "Save");
foreach (KeyValuePair<string, string> item in KeyValue) {
Console.WriteLine("{0} = {1}", item.Key, item.Value);
}
У вас уже есть много ответов. Но в зависимости от того, что вы хотите сделать, вы можете использовать LINQ.
Допустим, вы хотите получить список ярлыков, которые используют клавишу CTRL. Вы можете сделать что-то вроде:
var dict = new Dictionary<string, string>();
dict.Add("Ctrl+A", "Select all");
dict.Add("...", "...");
var ctrlShortcuts =
dict
.Where(x => x.Key.StartsWith("Ctrl+"))
.ToDictionary(x => x.Key, x => x.Value);