【问题标题】:Is it possible to find object's class in the list of objects?是否可以在对象列表中找到对象的类?
【发布时间】:2012-03-15 16:22:12
【问题描述】:

我有一个对象列表 = { obj1,obj2,obj3 }

对象的每个类都继承自同一个接口

interface IObjects
class Obj1:IObjects
class Obj2:IObjects
class Obj3:IObjects

例如,我想找到 Obj1 类的对象。 怎么做?

【问题讨论】:

    标签: c#


    【解决方案1】:

    您可以这样做:

    var listOfObject1s = objects.Where(o => o is Obj1).ToList();
    

    【讨论】:

      【解决方案2】:
      if(obj.GetType() == typeof(Obj1))
      {
          // obj is an Obj1!
      }
      

      【讨论】:

        【解决方案3】:

        遍历列表并检查

        item is Obj1
        

        【讨论】:

          【解决方案4】:

          Linq 方法:

          IObjects[] objList = new IObjects[] { obj1,obj2,obj3 };
          obj1 o1 = objList.Where(o => o.GetType() = typeof(Obj1)).First();
          

          【讨论】:

          • 如果一个对象是null,则会抛出异常
          【解决方案5】:

          在您的对象上调用 GetType()。 see here。希望这会有所帮助

          【讨论】:

            猜你喜欢
            • 2020-09-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-01-20
            • 2021-10-31
            • 2018-04-17
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多