Gewährleistet .GroupBy () die Reihenfolge in ihren Gruppierungen?

10

Sagen Sie, ich habe eine (geordnete) Sequenz von Tieren:

%Vor%

und ich gruppieren nach dem ersten Buchstaben:

%Vor%

werden die Elemente von IGrouping s in der resultierenden Sequenz in der gleichen Reihenfolge wie die Eingabesequenz sein?

    
spender 11.09.2012, 21:04
quelle

2 Antworten

19

Ja, sie werden: GroupBy (MSDN) .

  

IGrouping & lt; TKey, TElement & gt; Objekte werden in einer Reihenfolge geliefert, die auf der Reihenfolge der Elemente in der Quelle basiert, die den ersten Schlüssel jedes IGrouping & lt; TKey, TElement & gt; erzeugt haben. Elemente in einer Gruppierung werden in der Reihenfolge zurückgegeben, in der sie in source angezeigt werden.

    
McGarnagle 11.09.2012, 21:06
quelle
6

Zitat von der MSDN-Seite für GroupBy:

  

Die Objekte IGrouping<TKey, TElement> werden in einer Reihenfolge geliefert, die auf der Reihenfolge der Elemente in der Quelle basiert, die den ersten Schlüssel jedes IGrouping<TKey, TElement> erzeugt haben. Elemente in einer Gruppierung werden in der Reihenfolge zurückgegeben, in der sie in source angezeigt werden.

So wird Ihr Beispiel ergeben:

  
  1. Gruppe 1

         
    • Adler
    •   
    • Elefant
    •   
  2.   
  3. Gruppe 2

         
    • Tarantula
    •   
    • Terrapin
    •   
    • Tiger
    •   
  4.   

Das gilt natürlich nur für die IEnumerable<T> Implementierung. Die IQueryable<T> Implementierung hat keine solche Garantie.

    
Servy 11.09.2012 21:06
quelle