5

У меня есть объект System.Collections.Generic.Dictionary в моем коде, и я пытаюсь просмотреть его содержимое во время остановки в точке останова в отладчике Visual Studio. Класс Dictionary в .NET, конечно, содержит список ключей и значений.Невозможно просмотреть содержимое словаря в отладчике Visual Studio

Если я щелкнул правой кнопкой мыши на загруженном объекте и попытаюсь развернуть его содержимое, я, кажется, попал в бесконечный цикл. Например, если я пытаюсь увидеть содержащиеся ключи, я разворачиваю элемент Keys, который показывает мне счет, а другой сбор называется «Non-Public members». Я расширяю последнее и получаю еще один объект словаря, который имеет элемент Keys, который я могу расширить, чтобы получить еще один экземпляр «count» и «Non-Public members», который я могу расширить и т. Д. И т. Д .:

Dictionary expansion in Visual Studio debugger

Использование QuickWatch дает мне тот же результат, и как я могу просматривать ключи, содержащиеся в объекте?

+0

У вас есть минимальный пример кода, который генерирует эту ошибку? Глядя на словарь, отлично работает для меня в VS2010, используя словарь, к которому я добавляю несколько элементов. На основании опубликованного снимка экрана ничего не добавлено в dctLoadedRows. Кроме того, щелчок правой кнопкой мыши обычно вызывает контекстное меню и не позволит вам разобраться во всем. – iheanyi

+0

@iheanyi - изображение является фактическим снимком экрана (с кодом слева от расширения, вырезанного). Отладчик остановлен на одной из этих строк в коде. В Visual Studio вы можете развернуть объект из любой ссылки в коде, если объект все еще находится в области видимости. Это VS 2010. В этом случае это задача скрипта в SSIS. Щелчок правой кнопкой мыши по объекту вызвал диалог с помощью кнопки расширения слева от «dctLoadedRows Count = 17», как вы можете видеть, посмотрите ли вы на верхнюю строку расширения. – Buggieboy

+1

Другие испытали эту отладочную работу Silverlight и WCF в VS2010. Возможно, вы находитесь в этой ситуации или это «обычное» приложение VS: https://social.msdn.microsoft.com/Forums/vstudio/en-US/8c8d5f10-502c-43f5-a2ba-c1c0acfb8315/visual-studio -2010-c-not-drill-down-in-collections-and-see-data? Forum = vsdebug – iheanyi

ответ

2

Я знаю, что эта проблема исправлена ​​в более поздних версиях Visual Studio. Тем не менее, для некоторых из нас, которые застряли в старой версии VS, это быстрое исправление, чтобы увидеть ключи словаря.

Предположим, у нас есть словарь под названием «dict». Нам нужны ключи, чтобы увидеть значения. Таким образом, в окне просмотра сделать это:

dict.Keys.ToList()

Это позволит вам перейти в список и посмотреть ключи.

Если вы знаете, индекс ключа, который вы хотите сделать следующее:

dict.Keys.ToList()[1]

Это покажет ключ с индексом 1.

Теперь вы можете взять этот ключ и посмотреть что значение с:

dict[dict.Keys.ToList()[1]]

конечно, вы можете заменить индекс в ключах список с фактическим значением ключа в другой линии часов, если это проще.

EDIT: Кроме того, это также можно увидеть записи из словаря следующее в окне просмотра:

«dict.entries»

Это даст вам список записей просматривать. Каждая запись будет иметь свойство «ключ» и «значение».

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