繁体   English   中英

如何将IEnumerable(没有类型)转换为IQueryable <T>?

[英]How to turn an IEnumerable (without type) into an IQueryable<T>?

我使用LINQ了很多,我今天在基本任务上遇到了磕磕绊绊:

IEnumerable获取IQueryable<T> (没有指定类型)。

具体来说,我想查询SqlParameterCollection的参数。 这是从IDataParameterCollection, IList, ICollection, IEnumerable派生的IDataParameterCollection, IList, ICollection, IEnumerable如此处所述 但是,这些都没有指定的类型。

因此,我的问题归结为: 如何使用LINQ查询SqlParameterCollection?

这就是我所做的(编译器没有抱怨):

IQueryable<SqlParameter> queryable = 
    sqlCommand.Parameters.AsQueryable().Cast<SqlParameter>();
    //throws ArgumentException "source is not IEnumerable<>"

注意:我已经搜索了很多,但每个人都在讨论IEnumerable<T> ,当然使用AsQueryable()查询相当容易。

我对你想要这样做的原因感兴趣。 这应该做你解释的:

public IQueryable<T> AsQueryable<T>(IEnumerable list)
{
    return list.Cast<T>().AsQueryable();   
}

像这样打电话:

IQueryable<SqlParameter> query = AsQueryable<SqlParameter>(sqlParameterCollection);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM