为什么不是下面的代码工作?我收到以下错误。执行Ienumerable时发生错误<Datarow> .Sum()方法。
无法将类型'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;
}
Wha是'seriesItem.ValueMapping'的类型吗? Forthat问题,也许你可以粘贴SeriesItem的基本公共定义? – 2010-08-19 12:14:19
不会工作...这不是C++模板。 – leppie 2010-08-19 12:28:48