27

動物の (順序付けられた) シーケンスがあるとします。

鷲
象
タランチュラ
テラピン
虎

そして、最初の文字でグループ化します:

Animals.GroupBy(animal => animal.First())

結果のシーケンスの sの要素はIGrouping、入力シーケンスと同じ順序になりますか?

4

2 に答える 2

42

はい、次のようになります: GroupBy (MSDN)

IGrouping<TKey, TElement> オブジェクトは、各 IGrouping<TKey, TElement> の最初のキーを生成した source 内の要素の順序に基づく順序で生成されます。グループ内の要素は、ソースに表示される順序で生成されます。

于 2012-09-11T21:06:24.087 に答える
12

GroupByのMSDN ページからの引用:

オブジェクトは、IGrouping<TKey, TElement>それぞれの最初のキーを生成した source 内の要素の順序に基づいた順序で生成されますIGrouping<TKey, TElement>。グループ内の要素は、ソースに表示される順序で生成されます。

したがって、あなたの例は次のようになります。

  1. グループ1

  2. グループ 2

    • タランチュラ
    • テラピン

もちろん、それはIEnumerable<T>実装にのみ適用されます。IQueryable<T>実装にはそのような保証はありません。

于 2012-09-11T21:06:30.453 に答える