Visual Studio QuickWatch - 如何在QuickWatch窗口中快速查找集合中的项目

时间:2017-01-18 23:20:09

标签: debugging visual-studio-2013 visual-studio-debugging watch

我有一个名为m_Tree的可观察集合。它包含Planet类型的对象,它具有属性Name。该集合可能包含数百个项目。如何快速找到Planet.Name =" Jupiter"在VS?的QuickWatch窗口中

目前,我必须手动展开集合中的每辆车,并查找其名称,但这可能会令人不安。就我所见,Lambda表达式或LINQ在QuickWatch中不起作用。

以下是我尝试使用LINQ

的内容
from item in m_Tree where item.Name == "Jupiter" select item

但QuickWatch显示错误

  

来自m_Tree中的item,其中item.Name ==" Jupiter"选择项目
  表达式不能包含查询表达式

2 个答案:

答案 0 :(得分:3)

我创建了一个commercial extension for Visual Studio来解决这个问题。 OzCode取代了普通的QuickWatch和DataTip(悬停在变量上)窗口。如果您只是将属性值作为文本查找,则可以使用搜索功能:

Search

但是如果你只想在“Name”属性中使用“Jupiter”,而不是在任何其他属性中,你可以使用OzCode的Filter: Filter

输入[obj].Name == "Jupiter"作为您的谓词。

答案 1 :(得分:1)

虽然我的答案不是在QuickWatch中进行,但它可以帮助您完成工作。

在调试模式下,您可以使用Immediate Window来执行此操作。如果尚未打开,请打开立即窗口,然后执行查询。

var jupiters = (from item in m_Tree where item.Name == "Jupiter" select item).ToList();
jupiters  // prints the objects in the Immediate Window

我经常使用立即窗口,并发现它非常有用。希望对你也有帮助。