Часто возникает необходимость анализировать списки каких-нибудь объектов с иерархией наследования и большим кол-вом полей.
В результате использование DataTips превращается в ад , нужно каждый элемент развернуть до нужной иерархии и поглядеть, также значения не остаются на экране из-за чего их очень не удобно сравнивать.
Есть ли какие-нибудь популярные must have аддоны для визуализации отладки списков и не только ?
Пока мне достаточно было бы такой функциональности — есть список , если наименование полей, вывести таблицей отдельными колонками значения этих полей.
зы. студия 2015, не должно быть конфликтов с Resharper 2016.2
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, okon, Вы писали:
O>Есть ли какие-нибудь популярные must have аддоны для визуализации отладки списков и не только ?
Это не сойдёт?
Не совсем оно, конечно. Тут можно только что-то сравнительно простое напечатать, а не развёрнутую иерархическую структуру. Но иногда и этого хватает.
Здравствуйте, okon, Вы писали:
O>Пока мне достаточно было бы такой функциональности — есть список , если наименование полей, вывести таблицей отдельными колонками значения этих полей.
Когда-то было желание нашароварить именно такой аддон. Но не собрался.
Пользуясь случаем, спрошу у целевой аудитории: был бы спрос на такую штуку?
Здравствуйте, okon, Вы писали:
O>Пока мне достаточно было бы такой функциональности — есть список , если наименование полей, вывести таблицей отдельными колонками значения этих полей.
Добавляй переменные в окно Watch — они оттуда не пропадают и окно показывает какие поля изменили своё значение после каждого шага отладки. Кроме того, там можно сразу указывать целые выражения.
Здравствуйте, Vladek, Вы писали:
V>Здравствуйте, okon, Вы писали:
O>>Пока мне достаточно было бы такой функциональности — есть список , если наименование полей, вывести таблицей отдельными колонками значения этих полей.
V>Добавляй переменные в окно Watch — они оттуда не пропадают и окно показывает какие поля изменили своё значение после каждого шага отладки. Кроме того, там можно сразу указывать целые выражения.
Например вот код. Ставим точку останова в Console.ReadKey().
Хотим узнать например есть ли в коллекции элементы у которых Weight = 0 или сколько элементов у которых Weight > 10.
Или хотим визуально вывести все 20 элементов и видеть сразу их Id и Weight для удобного сравнения и возможностью сортировки по Id и Weight.
Попытка использования linq в Watch приводит к ошибке
Expression cannot contain lambda expressions
Чтобы проанализировать нужно развернуть в дереве все 20 элементов вручную. Если там будут еще другие поля то уже будет очень не удобно сравнивать
public class Class1
{
public int Id;
public int Weight;
}
static void Main(string[] args)
{
var list = new List<Class1>();
var rnd = new Random();
for (int i = 0; i < 20; i++)
{
list.Add(new Class1() { Id = i, Weight = rnd.Next(1,20) });
}
Console.ReadKey();
}
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, Artem Korneev, Вы писали:
AK>Здравствуйте, okon, Вы писали:
O>>Есть ли какие-нибудь популярные must have аддоны для визуализации отладки списков и не только ?
AK>Это не сойдёт? AK>Не совсем оно, конечно. Тут можно только что-то сравнительно простое напечатать, а не развёрнутую иерархическую структуру. Но иногда и этого хватает.
но не всегда поможет, особенно когда надо провести анализ прямо "здесь и сейчас" или когда одни и те же данные нужно в разных представлениях смотреть, заранее не известно в каких полях будут проблемы и какие потребуется анализировать.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, okon, Вы писали:
O>Хотим узнать например есть ли в коллекции элементы у которых Weight = 0 или сколько элементов у которых Weight > 10.
открываем Immediate window, пишем там
Здравствуйте, kbaj, Вы писали:
K>Здравствуйте, okon, Вы писали:
O>>Хотим узнать например есть ли в коллекции элементы у которых Weight = 0 или сколько элементов у которых Weight > 10. K>открываем Immediate window, пишем там
K>
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, Mihas, Вы писали:
M>Здравствуйте, okon, Вы писали:
O>>Пока мне достаточно было бы такой функциональности — есть список , если наименование полей, вывести таблицей отдельными колонками значения этих полей. M>Когда-то было желание нашароварить именно такой аддон. Но не собрался. M>Пользуясь случаем, спрошу у целевой аудитории: был бы спрос на такую штуку?
Думаю что спрос бы был 100% если сделать именно удобно , помимо табличных представлений иногда было бы удобно и графическое , например вы сделали список с Id и IdParent и хотите визуально увидеть его связи или у вас есть массив Plot и вы хотите увидеть их распределение
Вообще потребность вроде как с палеолита, идеи как это сделать на поверхности и по идее уже должно все быть реализовано.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, wl., Вы писали:
wl.>Здравствуйте, okon, Вы писали:
wl.>http://www.oz-code.com/ — вот это не подойдет? wl.>там есть триал на 30 дней
Да его смотрел, но там вылезли такие проблемы — он в процессе отладки занимается подсветкой значений и прикрепленные datatips уезжают за пределы экрана. В общем интеграция со студией у него получилась какая-то кривенькая. По той проблеме что описана , да есть там поиск фильтр полей, немного удобнее становится чем в стандартном, но опять же не совсем то чего хотелось бы, а именно табличный вид выбранных полей + сортировка.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, okon, Вы писали:
O>Здравствуйте, kbaj, Вы писали:
K>>Здравствуйте, okon, Вы писали:
O>>>Хотим узнать например есть ли в коллекции элементы у которых Weight = 0 или сколько элементов у которых Weight > 10. K>>открываем Immediate window, пишем там
K>>
K>>Problem solved. (в immediate поддерживается autocomplete есличо)
O>Хотя нет, не решается, сейчас попробовал получаю в Immediate Window то же самое что и в Watch
O>list.Any(x=>x.Weight>0) O>Expression cannot contain lambda expressions
O>А у вас работает ?
Ни у кого не работает. Так какие с этим трудноразрешимые проблемы. Лень ссылку на пруф искать.
Здравствуйте, Sharov, Вы писали: S>Ни у кого не работает. Так какие с этим трудноразрешимые проблемы. Лень ссылку на пруф искать.
Отучаемся говорить за всех — http://rsdn.org/forum/dotnet/6593192.1
люто, бешено рекомендую посмотреть на linqpad. Это не совсем то, что вы просите, но идеально подходит для быстрого прототипирования и умеет показывать результаты выполнения операций в любом виде (хошь XML, хошь csv, хошь таблица).
Здравствуйте, kbaj, Вы писали:
K>Здравствуйте, okon, Вы писали: O>>А у вас работает ? K>работает. Всю жизнь работало Что я делаю неправильно?
Хм, есть подозрение может это от версии зависит и в Ultimate работает ?
Может какие-то настройки.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, kbaj, Вы писали:
K>Здравствуйте, okon, Вы писали:
K>люто, бешено рекомендую посмотреть на linqpad. Это не совсем то, что вы просите, но идеально подходит для быстрого прототипирования и умеет показывать результаты выполнения операций в любом виде (хошь XML, хошь csv, хошь таблица).
Смотрел, но для решения задач отладки особенно кода с множеством зависимостей и источников данных он не подойдет, тогда надо весь проект в него будет перенести и он станет студией.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, okon, Вы писали:
O>Здравствуйте, kbaj, Вы писали:
K>>Здравствуйте, okon, Вы писали: O>>>А у вас работает ? K>>работает. Всю жизнь работало Что я делаю неправильно?
O>Хм, есть подозрение может это от версии зависит и в Ultimate работает ? O>Может какие-то настройки.
у меня Enterprise 2015 update 3
Здравствуйте, kbaj, Вы писали:
K>Здравствуйте, okon, Вы писали:
O>>Здравствуйте, kbaj, Вы писали:
K>>>Здравствуйте, okon, Вы писали: O>>>>А у вас работает ? K>>>работает. Всю жизнь работало Что я делаю неправильно?
O>>Хм, есть подозрение может это от версии зависит и в Ultimate работает ? O>>Может какие-то настройки. K>у меня Enterprise 2015 update 3
пиратский ?
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
задач отладки особенно кода с множеством зависимостей и источников данных он не подойдет, тогда надо весь проект в него будет перенести и он станет студией.
к нему можно подключить уже собраный код в качестве references. И прототипировать вызовы готового кода. Это такой REPL для сишарпа который done right в отличие от монстроидальной студии. Но да, совсем все в нем делать неудобно. Для вашего случая в принципе должно подойти immediate window.