我有一个名为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"选择项目
表达式不能包含查询表达式
答案 0 :(得分:3)
我创建了一个commercial extension for Visual Studio来解决这个问题。 OzCode取代了普通的QuickWatch和DataTip(悬停在变量上)窗口。如果您只是将属性值作为文本查找,则可以使用搜索功能:
但是如果你只想在“Name”属性中使用“Jupiter”,而不是在任何其他属性中,你可以使用OzCode的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
我经常使用立即窗口,并发现它非常有用。希望对你也有帮助。