.GroupBy()是否保证其分组中的顺序?

spe*_*der 18 c# linq linq-to-objects group-by ilookup

假设我有一个(有序的)动物序列:

Eagle
Elephant
Tarantula
Terrapin
Tiger

我按第一封信分组:

Animals.GroupBy(animal => animal.First())
Run Code Online (Sandbox Code Playgroud)

IGrouping结果序列中s 的元素是否与输入序列的顺序相同?

McG*_*gle 28

是的,它们将是:GroupBy(MSDN).

IGrouping <TKey,TElement>对象的生成顺序基于源中元素的顺序,这些元素生成每个IGrouping <TKey,TElement>的第一个键.分组中的元素按它们在源中出现的顺序生成.

  • 哇哇哇.我现在觉得很懒.谢谢你为我看.;) (3认同)

Ser*_*rvy 8

从GroupBy 的MSDN页面引用:

根据IGrouping<TKey, TElement>源中元素的顺序生成对象,这些元素生成每个对象的第一个键IGrouping<TKey, TElement>.分组中的元素按它们在源中出现的顺序生成.

所以你的例子会导致:

  1. 第1组

  2. 第2组

    • 狼蛛

当然,这仅适用于IEnumerable<T>实施.该IQueryable<T>实施有没有这样的保证.