如何从方法返回匿名类型?
-
09-06-2019 - |
题
我有一个 Linq 查询,我想从多个地方调用它:
var myData = from a in db.MyTable
where a.MyValue == "A"
select new {
a.Key,
a.MyValue
};
如何创建一个方法,将这段代码放入其中,然后调用它?
public ??? GetSomeData()
{
// my Linq query
}
解决方案
IQueryable 和 IEnumerable 都可以工作。但您想使用特定于类型的版本 IQueryable<
时间>
或 IEnumerable <
时间>
.
因此,您需要创建一种类型来保存数据。
var myData = from a in db.MyTable
where a.MyValue == "A"
select new MyType
{
Key = a.Key,
Value = a.MyValue
};
其他提示
通用方法应该为您提供智能感知:
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<>
并返回该变量。迭代它实际上执行了查询。
不隶属于 StackOverflow