检查对象列表中的对象类型获取带有包含ExpPaders和StackPanel的StackPanel的WPF窗体。我在对象列表中读取了Expander的内容。现在我必须知道列表是否包含stackpanel类型的对象。列表tmpList=newList();tmpList=ReadChild((StackPanel)exp.Content)//给出扩展器的内容。在大写情况下,它是2StackPanelsif(tmpList.Contains.typeof(StackPanel)=true)//那是错误的{//搜索带有标签的Stackpanel}您可以使用OfType仅过滤列表中的特定类型。我知道您想遍历所有StackPanel(在列表中),因此您可以这样做:foreach(varpanelintmpList.OfType()){//yourworkhere...}如果您想检查是否有任何StackPanel,使用以下命令:if(tmpList.OfType().Any()){//...}如果我理解正确,您可以使用此LINQ表达式varw=tmpList.Where(x=>x.IsTypeOf(StackPanel)).SingleOrDefault();我会这样做:使用Enumerable.OfType()更多信息:https://msdn.microsoft.com/en-us/library/vstudio/bb360913(v=vs.100).aspxforeach(varstackpanel在tmpList.OfType()){//搜索标签。(同样的技巧)varmyLabel=stackpanel.Children.OfType().FirstOrDefault();//如果找不到标签,则继续下一个。如果(我的标签==空)继续;myLabel.Content="随便";回答这部分问题的问题并不多。“现在我必须知道列表是否包含stackpanel类型的对象。》可以通过以下方式实现:以上是C#学习教程:勾选对象列表中的对象类型分享所有内容,如果对大家有用需要进一步了解C#学习教程,我希望大家多多关注—if(tmpList.Any(x=>x.IsTypeOf(StackPanel))){//如果列表中有堆栈面板则返回true}本文收集自网络,不代表一个职位,如涉及侵权,请点击右侧联系管理员删除,如有请注明出处:
