[英]How to define a return type of an anonymous list
我有以下方法:
public static object GetBarChart(int dataValue)
{
using (var myEntities = new i96X_dataEntities())
{
var myValues = (from values in myEntities.PointValues
where values.PointID == dataValue
select new
{
values.DataTime,
values.DataValue
}).ToList();
}
if (myValues.Count() != 0)
{
return myValues;
}
return null;
}
我只能将其作为对象返回,因为我无法解决如何将其定义为类型。 当我调试时,它告诉我返回类型是:
{System.Collections.Generic.List <<> f__AnonymousType2 <System.DateTime,double >>}
但是我不知道如何定义它。
我定义了一个类:
public class BarChart
{
public DateTime Time { get; set; }
public double Value { get; set; }
}
public class BarList
{
public List<BarChart> BarL { get; set; }
}
我想那是对的。 但是,如果现在使用BarList作为返回类型,则编译器将读取:
无法将表达式类型'System.Collections.Generic.List <{DataTime:System.DateTime,DataValue:double}>'转换为返回类型BarList'
我认为答案只是定义BarChart,然后返回List <BarChart>。
感谢您的协助。
该函数返回匿名类型的集合。 匿名类型在LINQ表达式中定义。
如果您知道数据库中PointValues集合的组成类型,则可以直接返回该类型。
如果您有一个名为Point的类,而不是将LINQ表达式中的Anonymous构造函数更改为一个具体的类:
select new Point { Time = values.DataTime, Value = values.DataValue }
在这种情况下,您的方法将返回点列表。 IList <<点>>
你尝试过这样的事情吗?
public static IEnumerable<Tuple<DateTime, DataValue>> GetBarChart(int dataValue)
{
return
(
from values in new i96X_dataEntities()
where values.PointID == dataValue
select new Tuple<DateTime, DataValue>(values.DataTime, values.DataValue)
);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.