爲什麼不是下面的代碼工作?我收到以下錯誤。執行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