如何将一系列数字拆分为数字子组,并使用linq获取子组的局部最小值和最大值?
如果我有序列,可以说11项{3,2,5,9,9,6,7,2,5,11,2} 我想将其拆分为3个或更少项目的子组。
所以我得到以下4个小组:{3,2,5},{9,9,6},{7,2,5},{11,2}
LinQ表达式的最终返回值(每组获得最小值和最大值)应为2,5,6,9,2,7,2,1
TIA, 萨沙
答案 0 :(得分:4)
这应该这样做。
var numbers = new[] { 3, 2, 5, 9, 9, 6, 7, 2, 5, 11, 2 };
var query = from p in numbers.Select((n, i) => new { n, Group = i / 3 })
group p.n by p.Group into g
from n in new[] { g.Min(), g.Max() }
select n;
答案 1 :(得分:3)