我需要计算两个字段的乘积之和。这将用于平均加权价格。avgPrice = sum(price*volume) / sum(volume)。price1 和 price2 都返回错误“指定的转换无效”。
var result3 = from sym in dataTableAsEnumerable()
group sym by new { symbol = sym["symbol"] } into grouped
select new
{
// SYMBOL = sym.Field<string>("symbolCAN"),
SYMBOL = grouped.Key.symbol,
tradeTimeMin = grouped.Min(e => e["tradeTimeMin"]),
tradeTimeMax = grouped.Max(e => e["tradeTimeMax"]),
volume = grouped.Sum(e => (int)e["volume"] ),
price1 = grouped.Sum(e => (double)e["volume"] * (double)e["symbol"]) / grouped.Sum(e => (double)e["volume"]),
price2 = grouped.Sum(e => ( e.Field<decimal>("volume") * e.Field<decimal>("symbol")))
};