Angenommen zwei Listen, A und B, so dass A = (1,2,3) und B = (4,5,6). Wird A.Concat (B) die Reihenfolge beibehalten, so dass das Ergebnis (1,2,3,4,5,6) ist?Kann IEnumerable <TSource> Concat <TSource> die Reihenfolge der Elemente beibehalten?
Antwort
Ja. IEnumerable.Concat wird einfach zwei Listen in eine einzige Liste umwandeln, indem Sie eins an das Ende des anderen binden. Die Reihenfolge in jeder Liste wird beibehalten.
Ist es explizit erwähnt Irgendwo in der Dokumentation? Ich meine, ob es sich um ein Thema handelt, das sich als Implementierungsdetail ändern kann, oder ist es eindeutig, dass sich dieses Verhalten in Zukunft nicht ändern wird. –
@Dmitry MS kann dieses Verhalten nicht ändern, ohne eine große Anzahl von Anwendungen zu unterbrechen und die Bedeutung von Verketten neu zu definieren. IMHO, es ist sicher, davon abhängig zu sein. – JaredPar
Ok, danke, ganz vernünftig :) –
Ja, das ist ziemlich genau was Verkettung bedeutet.
Obligatorische MSDN Zitat: (Enumerable.Concat)
Rückgabewert
Typ: System.Collections.Generic.IEnumerable (TSource)
Ein IEnumerable(T), die die verketteten Elemente der beiden Eingangs enthält Sequenzen .
- 1. Reihenfolge der Ausführung im Operator <<
- 2. IEnumerable <IEnumerable <T>> zu IEnumerable <T> LINQ mit
- 3. IEnumerable <> zu IList <>
- 4. LINQ: IEnumerable <KeyValuePair <Sometype, IEnumerable <OtherType> >> Auswahl
- 5. EntitySet <IEnumerable <T>> zu IEnumerable <T>
- 6. konvertieren/Cast IEnumerable IEnumerable <T>
- 7. Holen Sie sich ein IEnumerable <T> aus einem IEnumerable <IEnumerable <T>>
- 8. Wählen Sie gerade/ungerade Elemente in IEnumerable <T>?
- 9. zu IEnumerable <T>
- 10. XML IEnumerable <T>
- 11. IEnumerable <string> bespannen
- 12. IEnumerable <T> Frage
- 13. Wie initialisiert man IEnumerable <Object>, die leer sind und Concat erlauben?
- 14. Automapper - Alle Elemente von IEnumerable ignorieren <SelectListItem>
- 15. Kann Ruby uniq die Reihenfolge beibehalten?
- 16. Pivot IEnumerable <T>
- 17. Kann Postgres und Oracle die Reihenfolge der Anzeigen beibehalten?
- 18. IEnumerable <T> Auswertung und Komponententest
- 19. Umwandlung Aufgabe <DbSet<T>> zu Aufgabe <IEnumerable <T>>
- 20. Concat HashSet <String> und IList <String>
- 21. Artikel von IEnumerable entfernen <T>
- 22. Asynchroner Iterator Aufgabe <IEnumerable <T>>
- 23. Wie kann ich IEnumerable <T> in C# in die Liste <T> konvertieren?
- 24. Liste <int> zu IEnumerable <IComparable>
- 25. Wie ein leeres IOrderedEnumerable <DynamicNode> und IEnumerable <IGrouping <string, DynamicNode >>
- 26. IEnumerable <object> zur Liste <object>
- 27. IEnumerable <T> vs IReadOnlyList <T>
- 28. Ist IEnumerable <T> .Last() für die Liste <T> optimiert?
- 29. Der beste Weg, um IEnumerable zu zählen <T>
- 30. Wie kann ich eine IEnumerable <T> zu einem bestehenden ICollection <T>
Warum hat der H * LL dies abgelehnt? Upvoting zu kontern, es sei denn jemand kann einen guten Grund liefern. Wenn Sie Klärung benötigen, fragen Sie danach in den Kommentaren ... –
möglich Duplikat von [Erhalt der Bestellung mit LINQ] (http://stackoverflow.com/questions/204505/reserving-order-with-linq) –