最好通过查看数据来解释。考虑一下这个清单......
Data A Data B
_______________________
A 1
A 2
B 1
B 2
A 3
A 4
“数据A”上的正常分组功能将产生以下内容......
A
1
2
3
4
B
1
2
...但我们对“数据A”的分组不感兴趣,而是“数据A”发生变化时,就像这样
A
1
2
B
1
2
A
3
4
意思是我们最终得到三组,而不是两组。
这在LINQ中是否可行?
答案 0 :(得分:1)
最简单的方法是使用GroupAdjacent
from moreLINQ:
var results = source.GroupAdjacent(x => x.DataA);
只使用标准的LINQ方法,你可能不得不使用Aggregate
,这比使用foreach
循环更好(和IMO更差,更不易读)。