【发布时间】:2012-02-20 11:39:04
【问题描述】:
我需要平均 3 个 IEnumerable 集合并创建一个新的 IEnumerable,结果如下:
var result1 = GetResult1()//Returns an enumerable collection having elements 1,2,3,4
var result2 = GetResult2()//Returns an enumerable collection having elements 3,4,2,6
var result3 = GetResult3()//returns an enumerable collection having elements 2,5,1,6
//I need to create a collection which has the averages of the above results as below:
var result4 = GetResult4()//Should return 2.00,3.67,2.33,5.33.
-
每个结果将具有相同数量的元素,即 result1、result2、result3 将具有相同数量的元素(在本例中为 4,但实际上它的范围可以到 1500)。
结果中的每个元素对应于结果的平均值,即在 result4 集合中,第一个元素将是 1,3,2 的平均值,对应于 result1,result2 中第一个元素的平均值, result3 分别和以后。
生成的集合应将小数位四舍五入为 2。
一个明显的答案是遍历集合中的每个元素并手动创建结果集合中的元素(即通过 for 循环),但是我想避免它,因为结果将在每个集合中包含接近 1500 个元素并希望使用 LINQ 进行某种惰性求值。
你能帮我指点一下吗?
干杯, -迈克
【问题讨论】:
标签: c# linq ienumerable