var v = from o in db.SuperAdmin
                orderby o.id
                select new
                {
                    用户名=o.UserName,
                    ID=o.id
                };代码很简单,这里得到的是一个System.Linq.IQueryable<<string,int>>类型。
我想要的是将这个查询结果传到一个public class Dataset<T> :IQueryable<T>这样的类中作进一步处理。
猜想如果将这个泛型内处理一下,public class Dataset<T,U>似乎也能行得通,但是IQueryable<T>却没有IQueryable<T,U>
而且,作这样的处理似乎不太可行,因为T,U只限于两种类型,或许还会有T,U,X甚至T,U,X,Y,Z这都取决于select new
所以麻烦出来了,有没有办法,将这样的东西统一起来,以便于在Dataset这个类中对其进行其它的处理呢?
也就是说,我怎么把这个v转化成为IQueryable<T>?

解决方案 »

  1.   

    你这个需求恐怕实现不了,v的结果是IQueryable<T> 这个T是匿名的,在c#泛型不支持萃取的前提下,我看很难能把 T,U,X,Y的具体类型抽出来
      

  2.   

    啊啊!!!怎么这样啊,自己问,自己解决- -。。无语ING。。
      

  3.   

    我也想到了一个,呵呵。用Tuple返回而不是匿名类型, var v = from o in db.SuperAdmin 
                    orderby o.id 
                    select Tuple.New 
                    { 
                        o.UserName, 
                        o.id 
                    }; 
    这样就可以萃取了