代码之家  ›  专栏  ›  技术社区  ›  Aaron Fischer

如何将对象引导到IList<T>?

  •  0
  • Aaron Fischer  · 技术社区  · 15 年前

    我将反射与linq.Dynamic一起使用,在创建需要获取的查询时遇到了一个小问题 IQueryable<T> IList<T> ISet<T> 当我当前有一个对象时。

    object Helper<T>( IList<T> list, string query, param object[] values )
    {
    ... do query and return result.
    }
    


    有没有一个简单的方法来解决这个问题?我也试图避免动态调用这个helper函数。

    编辑: 基本上,我有一个屏幕guid 10和一个XPath字符串“水果篮/水果[crime==true]/color” 因此,我知道在我的反射代码中,水果是一个IList。我检查该属性以确定它是否实现了IList。现在,我正处于需要查询此集合以挑选水果的位置。crime==true对象。为此,我需要一个演员阵容

    1 回复  |  直到 15 年前
        1
  •  4
  •   Jon Skeet    15 年前

    如果你只有 object ,您希望编译器如何知道 T 应该是?

    T 应该是(甚至就调用方法的另一个类型参数而言)?如果不是你 必须动态地调用它。

    这是吗 事实上 IList<T> 对一些人来说 T ? 如果实施,将会发生什么 IList<T> 两种不同的类型?

    要求您在编译时知道类型参数。