如何从方法返回匿名类型?

Sco*_*ttG 13 c# linq parameter-passing data-structures

我有一个Linq查询,我想从多个地方调用:

var myData = from a in db.MyTable
             where a.MyValue == "A"
             select new  {
                            a.Key,
                            a.MyValue
                          };
Run Code Online (Sandbox Code Playgroud)

如何创建方法,将此代码放入其中,然后调用它?

public  ???  GetSomeData()
{
   // my Linq query
}
Run Code Online (Sandbox Code Playgroud)

Dar*_*opp 10

IQueryable和IEnumerable都有效.但是,要使用一种特定的版本,IQueryable的<牛逼>或IEnumerable的<牛逼>.

因此,您需要创建一个类型来保存数据.

var myData = from a in db.MyTable
             where a.MyValue == "A"
             select new MyType
             {
                 Key = a.Key,
                 Value = a.MyValue
             };
Run Code Online (Sandbox Code Playgroud)


Rya*_*aux 8

IQueryable

所以你的方法声明看起来像

public IQueryable GetSomeData()
Run Code Online (Sandbox Code Playgroud)

  • 通过这样做,您将无法智能感知,只能通过反射访问项目的属性. (2认同)