Ich habe gerade gelesen question und es hat mich darüber nachdenken, warum ich die IEnumerable
beim Abrufen von Daten verwenden müsste. Ich verstehe die Unterschiede zwischen IQueryable
und IEnumerable
, aber wäre ein IEnumerable
Objekt besser für Daten, die Filterung ermöglicht? zum Beispiel eine Tabelle mit den Datensätzen, die ein Datum enthalten, damit ich nach dem Datum sortieren kann.Ist IEnumerable ein guter Rückgabetyp für Daten, die Filterung ermöglichen?
Antwort
Wenn Sie die Objekte im Speicher haben - nicht von einer anderen Datenquelle wie einer Datenbank - verwenden Sie IEnumerable<T>
. Auf diese Weise wird das integrierte LINQ to Objects automatisch funktionieren.
Sie könnten LINQ sogar auf Objekte erweitern, indem Sie benutzerdefinierte Erweiterungsmethoden schreiben und yield return
und yield break
verwenden.
Wenn Sie Entity Framework oder ein anderes System verwenden, das IQueryable<T>
verwendet, würde ich es als IQueryable<T>
behalten, bis Sie es als Objekte benötigen.
Kommt drauf an.
Wenn Sie zuerst alle Daten empfangen und anschließend den zurückgegebenen Satz Objekte filtern möchten, verwenden Sie IEnumerable.
Wenn Sie das Filtern auf der Datenbank aktivieren möchten (z. B. Linq-to-sql/Entity Framework), verwenden Sie besser IQueryable.
- 1. ist ein guter Ausgangspunkt für Java-Web
- 2. Was ist ein guter Texteditor für die Cloud?
- 3. Ist dies ein guter Fall für die Verwendung von RoutedCommand?
- 4. IEnumerable <T> als Rückgabetyp
- 5. Was ist ein guter Faxserver?
- 6. Was ist ein guter Geschwindigkeitsbegrenzungsalgorithmus?
- 7. Ein guter Datenbankprotokollappender für Java?
- 8. Was ist ein kovarianter Rückgabetyp?
- 9. Guter Datensatz für die Stimmungsanalyse?
- 10. Was ist ein guter Software-Entwicklungsplan?
- 11. Was ist ein guter ASP.NET Ad Server?
- 12. Ist eine zufällige Zeichenfolge ein guter Bestätigungscode
- 13. Code-Repository. Was ist ein guter?
- 14. Was ist ein guter Robotik-Simulator?
- 15. Was ist ein guter Keyword-Extraktionswebdienst?
- 16. IEnumerable ohne Daten
- 17. Was ist ein guter Name für diese Art von Objekt?
- 18. Ist XXTEA ein guter Verschlüsselungsalgorithmus für einen PIC-Mikrocontroller?
- 19. Was ist ein guter Ersatz für Visio Enterprise Architect?
- 20. Was ist ein guter Open Source-Nachrichtenbus für Embedded Linux?
- 21. Ist das ein guter Kandidat für eine Fabrik?
- 22. Wo ist ein guter Leitfaden für Drupal Theme?
- 23. Was ist ein guter SVN-Dienst?
- 24. Was ist ein guter Name für einen Datenbankbenutzer?
- 25. BitmapSource.CopyPixels -Was ist ein guter Wert für Schritt?
- 26. Guter Leitfaden für die Sicherheit von Webanwendungen?
- 27. Ist Microsoft BizSpark ein guter Deal für Startups?
- 28. Wo ist ein guter Ort für einen Code-Review?
- 29. Ist WebMatrix ein guter Ersatz für Coda unter Windows?
- 30. Was ist ein guter Anwendungsfall für .NET 4.0 Expression Trees?