select new" /> select new" /> select new" />

首页 / 知识

关于c#:如何从方法中返回匿名类型?

2023-04-14 21:23:00

关于c#:如何从方法中返回匿名类型?

How can I return an anonymous type from a method?

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

1
2
3
4
5
6
var myData = from a in db.MyTable
             where a.MyValue =="A"
             select new  {
                            a.Key,
                            a.MyValue
                          };

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

1
2
3
4
public  ???  GetSomeData()
{
   // my Linq query
}

IQueryable和IEnumerable都可以工作。但是您要使用特定于类型的版本,即IQueryable < T >或IEnumerable < T >

因此,您将要创建一个类型来保留数据。

1
2
3
4
5
6
7
var myData = from a in db.MyTable
             where a.MyValue =="A"
             select new MyType
             {
                 Key = a.Key,
                 Value = a.MyValue
             };

IQueryable

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

1
public IQueryable GetSomeData()


通用方法应为您提供智能感知:

1
2
3
4
5
6
7
public class MyType {Key{get;set;} Value{get;set}}

public IQueryable< T > GetSomeData< T >() where T : MyType, new()
 { return from a in db.MyTable
          where a.MyValue =="A"
          select new T {Key=a.Key,Value=a.MyValue};
 }

如果要返回,则需要输入类型。

而不是var,使用IEnumerable<>声明并返回该变量。遍历它实际上执行查询。


匿名类型方法查询调用

最新内容

相关内容

猜你喜欢