【发布时间】:2015-02-15 07:44:17
【问题描述】:
我有一个Tuple<string, int> 的列表:
"dog", 25
"cat", 5
"cat", 7
"rat", 4
"dog", 10
我需要的 Linq 查询规则必须满足以下条件:我需要按字符串值对元组进行分组,但前提是至少出现 2 次。分组元素的聚合应该是乘法。毕竟我需要聚合元素的总和。在上面的例子中,结果是 25*10 + 5*7 = 285。
到目前为止,除了其他几件事之外,我已经尝试过这个:
var query = from tuple in firstTupleList.Concat(secondTupleList)
group tuple.Item2 by tuple.Item1 into g
select Tuple.Create(g.Key, g.Aggregate((x, y) => x * y));
这对狗和猫进行了乘法运算,但老鼠仍在列表中,这是错误的。
【问题讨论】:
-
好的,继续尝试。
-
这是作业吗?你试过什么?
-
元组是否保证按键排序?
-
不,不保证订单。我已经编辑了原始列表以使其更加清晰。