我想从方法返回未知类型的List。我收到错误的回复'代码行。
public List<T> GetMethod<T>()
{
var categoryCounts =
(from r in reqCount
group r by new
{
r.First,
r.Second
}
into g
select new
{
MonthNumber = g.Key.First,
Category = g.Key.Second,
OrdersCount = g.Count()
}).OrderBy(m => m.MonthNumber).ThenBy(c => c.Category).ToList();
return categoryCounts;
}
提前致谢
答案 0 :(得分:2)
您无法从方法中返回匿名类型。
您可以返回List<Object>
,但这不是真正的通用。
或者,您可以创建命名类型并返回包含以下内容的List:
public class MyType
{
int MonthNumber {get;set;}
string Category {get;set;}
int OrdersCount {get;set;}
}
public List<MyType> GetMethod()
{
var categoryCounts =
(from r in reqCount
group r by new
{
r.First,
r.Second
}
into g
select new MyType()
{
MonthNumber = g.Key.First,
Category = g.Key.Second,
OrdersCount = g.Count()
}).OrderBy(m => m.MonthNumber).ThenBy(c => c.Category).ToList();
return categoryCounts;
}
答案 1 :(得分:1)
public List<object> GetMethod(){}
或
public IList<object> GetMethod(){}
然后
var res = GetMethod();
res[0].YouFieldOrProp
您无法从方法中返回匿名类型。
答案 2 :(得分:0)
您的方法签名返回泛型类型,但其中的代码返回特定匿名类型的列表。编译器无法将您的匿名类型转换为调用者使用的T
。 (GetMethod对你的实现没有意义)。
在不知道如何使用的情况下,不清楚您的方法应该是通用的,还是应该返回具体类型。
答案 3 :(得分:0)
您可以创建返回类型dynamic
。但是你需要非常小心这种返回类型。您将失去编译时检查,并且intellisense将不再适用于返回对象。