2016-12-05 2 views
-2

Я следующий код:печати значения из словаря

static void showSetsFunction(){ 
    foreach (KeyValuePair<string, List<string>> aux in definitions){ 
     Console.WriteLine(aux.Key+"->"+aux.Value.ToString()); 
    } 
} 

И выход из этого заключается в следующем: console

Как я могу сделать правильно?

+0

код правильно, и ваши ожидания не являются. Если вы ожидаете чего-то иного, чем имена типов, напечатанные кодом, указанным в сообщении, вам нужно явно указать это в сообщении. (Примечание: избегайте публикации изображений, когда будет работать обычный текст). –

+0

FYI: 'ToString' в' List 'не реализован никоим образом, как вы обычно хотели бы использовать (следовательно,' System.Collections' ... вы видите) – crashmstr

ответ

2

Вы можете использовать string.Join, чтобы превратить список строк в строку, разделенную запятой.

Console.WriteLine(aux.Key + "->" + string.Join(", ", aux.Value)); 
0

aux.Value является List<string>, не string. Вы можете легко исправить это за счет сокращения списка к одному string с string.Join, например:

static void showSetsFunction(){ 

    foreach (KeyValuePair<string, List<string>> aux in definitions){ 
     Console.WriteLine(aux.Key+"->"+string.Join(",", aux.Value.ToArray())); 
    } 

} 
+0

'ToArray' не требуется как' string.Join 'имеет перегрузку, которая принимает' IEnumerable ' – juharr

Смежные вопросы