小弟是新手,刚学.net,现在用反射方法获取一个对象的类型,那我要判断这个类型是否是Dictionary,如何做?

解决方案 »

  1.   

    方法1;
    if(obj is Dictionary)
    {
      //是Dictionary
    }
    方法2;
    Dictionary dic = obj as Dictionary;
    if(dic != null)
    {
      //是Dictionary
    }如果仅仅是判断推荐第一种,如果是要类型转换,推荐第二种,因为is这个操作本身底层需要反射,相对来说比较耗资源,直接转换效率更好。
      

  2.   

    if(obj is Dictionary)
    {
      //是Dictionary
    }
      

  3.   

    如果知道Dictionary的类型T1, T2,就可以直接
    if (obj is Dictionary<T1, T2>)
    否则可以
    if (obj.GetType().GetInterfaces().Where(o => o == typeof(IDictionary)).Count() > 0)