匿名类型和泛型

haz*_*nli 5 c#

我找不到将匿名类型作为类型参数传递给泛型类的方法.

//这是我要实例化的类

public class ExtArrayStore<T> : IViewComponent 
{
    public IQueryable<T> Data { get; set; }
Run Code Online (Sandbox Code Playgroud)

... //创作者类

public static class ArrayStoreGenerator
{
    public static ExtArrayStore<T> CreateInstance<T>(IQueryable<T> query)
    {
        return new ExtArrayStore<T>();
    }
}
Run Code Online (Sandbox Code Playgroud)

//试着用这个

IQueryable usersQuery= ((from k in bo.usersselect new { userid = k.userid, k.username}).AsQueryable());
      var x = ArrayStoreGenerator.CreateInstance(usersQuery);
Run Code Online (Sandbox Code Playgroud)

我正进入(状态;

无法从用法推断出方法ArrayStoreGenerator.CreateInstance(System.Linq.IQueryable)'的类型参数.尝试显式指定类型参数

有没有办法实现这个目标?(我正在考虑接口和返回接口,但不确定它是否可行)任何人都可以帮助将anon类型传递给泛型.

Bry*_*tts 6

usersQuery正被输入为非泛型,IQueryable因为您在变量的声明中明确指定了它.

相反,做var usersQuery = ....这将键入变量as IQueryable<TAnon>,然后匹配签名ArrayStoreGenerator.CreateInstance.