【发布时间】:2010-08-19 12:02:47
【问题描述】:
为什么下面的代码不起作用?我收到以下错误。
无法将类型“V”隐式转换为 int。
private ObservableCollection<DataItem> method<T, V>(DataTable dt, SeriesItem seriesItem, FilterValues filter, ObservableCollection<DataItem> chart)
{
var result = from t in dt.AsEnumerable()
group t by new { type = t.Field<T>(seriesItem.LabelMapping).ToString().ToUpper() } into g
orderby g.Key.type
select new
{
Item_Type = g.Key.type.ToString(),
Amount = seriesItem.IsSum
? g.Sum(s => s.Field<V>(seriesItem.ValueMapping))
: g.Count()
};
foreach (var g in result)
{
chart.Add(new DataItem(g.Item_Type, double.Parse(g.Amount.ToString()))
{
IsSum = seriesItem.IsSum,
IsDisplayCurrency = seriesItem.IsDisplayCurrency
});
}
return chart;
}
【问题讨论】:
-
seriesItem.ValueMapping的类型是什么?就此而言,也许您可以粘贴 SeriesItem 的基本公共定义? -
行不通...这不是 C++ 模板。