说我有一个(有序的)动物序列:
Eagle Elephant Tarantula Terrapin Tiger
我和第一封信分组:
Animals.GroupBy(animal => animal.First())
结果序列中IGrouping
s的元素与输入序列的顺序是否相同?
答案 0 :(得分:25)
是的,它们将是:GroupBy (MSDN)。
IGrouping< TKey,TElement>根据源中元素的顺序产生对象,这些元素产生每个IGrouping< TKey,TElement>的第一个键。分组中的元素按它们在源中出现的顺序产生。
答案 1 :(得分:8)
引用来自MSDN page的GroupBy:
根据生成每个
IGrouping<TKey, TElement>
的第一个键的源中元素的顺序,按顺序生成IGrouping<TKey, TElement>
个对象。分组中的元素按它们在源中出现的顺序产生。
因此,您的示例将导致:
第1组
- 鹰
- 象
- 醇>
第2组
- 狼蛛
- 龟
- 虎
当然,这仅适用于IEnumerable<T>
实施。 IQueryable<T>
实施没有这样的保证。