IEnumerable<T>
Es gibt viele verschiedene Möglichkeiten, dass eine Reihe von Dingen gespeichert werden kann, in einer Liste, in einem Array, in einer Datenbank usw. Eine Sache, dass diese Speichermechanismen gemeinsam haben, ist, dass der Satz von Dinge gehalten werden kann Enumerated, das ist jeder kann zugegriffen werden nacheinander mit einem Sprachkonstrukt wie foreach
zum Beispiel.
Die IEnumerable<T>
Schnittstelle stellt diese allgemeine Schnittstelle dar, die alle Halter von Sätzen Dinge Enumeration aktivieren müssen.Daher stellt IEnumberable<Person
eine Schnittstelle dar, die das Aufzählen eines Satzes von Person
-Objekten ermöglicht, ohne spezifisch für die tatsächliche Art und Weise zu sein, in der diese Objekte gespeichert werden.
IQueryable<T>
Dies ist eine Erweiterung zu IEnumerable<T>
aber etwas Bestimmtes zu LINQ darstellt. In LINQ können Sie eine Abfrage angeben, die einen Satz (oder Mengen) von Elementen filtern und transformieren kann. Gegen eine reine IEnumerable<T>
Schnittstelle wäre dies als LINQ to Objects bekannt, in der jede Stufe der Abfrage letztlich ein einfacher Aufruf einer Erweiterungsmethode ist.
Aber gegen ein Objekt, das IQueryable<T>
implementiert Dinge können ausgefeilter sein. Das Objekt, das IQueryable<T>
implementiert, kann mit einem anderen LINQ Provider verknüpft werden, der die Ausführung von LINQ-Abfragen auf andere Weise implementiert. Zum Beispiel kann IQueryable<Person>
durch einen Typ implementiert werden, der dem LINQ-To-SQL-Provider zugeordnet ist. In diesem Fall wird eine LINQ-Abfrage in eine T-SQL-Abfrage umgewandelt, die für eine Datenbank ausgeführt wird, um eine Menge von Elementen zu erhalten (das Ergebnis muss nicht unbedingt eine Menge von Person
Objekten sein).
IEnumerable ist ein .Net-Typ, nicht ein OOPs-Begriff – Gishu
BTW, es ist OOP (objektorientierte Programmierung) nicht OOPS. Ich habe es bearbeitet, um es zu beheben. – Aamir
@Aamir du hast Recht. Ich plädiere für semantische Verbreitung :) - Wenn Sie jedoch Alan Kay und einige andere angesehene Leute fragen, ist OOPS geeignet für das, was es geworden ist. – Gishu