做了一个类似树形结构的界面,在list中放几个类对象,遍历list,选中树形一个子节点,如果该子节点的父节点名字和list中对象的名字相同,执行一个操作;选中子子节点,如果该子子节点的父节点的父节点名字和list中对象的名字相同,执行一个操作。现在的问题是foreach(var o in list)
{
   //选中子节点
   if(选中节点.parent==o)
     {
        操作;
     }
   //选中子子节点
   if(选中节点.parent.parent==o)   //当选中子节点,执行到这里会报错,因为子节点没有父节点的父节点
     {
        操作;
     }
}
该做个如何判断

解决方案 »

  1.   


         if(选中节点.parent.parent!=null && 选中节点.parent.parent==o)   //当选中子节点,执行到这里会报错,因为子节点没有父节点的父节点
         {
            操作;
         }
      

  2.   

    空异常而已,
    foreach(var o in list)
    {
       //选中子节点
       if(选中节点.parent==o)
         {
            操作;
         }
    if(选中节点.parent.parent!=null && 选中节点.parent.parent==o)
         {
            操作;
         }
    }
      

  3.   


    这种办法我试过,parent是那个控件一个属性,if(选中节点.parent.parent!=null)这一句就会报错,因为根本就找不到选中节点.parent.parent,未将对象引用到实例
      

  4.   


    foreach(var o in list)
    {
       //选中子节点
       if(选中节点.parent!=null&&选中节点.parent==o)
         {
            操作;
         }
       //选中子子节点
       if(选中节点.parent!=null&&选中节点.parent.parent!=null&&选中节点.parent.parent==o)   //当选中子节点,执行到这里会报错,因为子节点没有父节点的父节点
         {
            操作;
         }
    }