6
votes

IEnumerable: Que signifie-t-il dans le contexte de OOP

Veuillez considérer le code suivant:

public class Person
(
    public string FirstName {get; set;}
    public string LastName  {get; set;}
    Public int Age  {get; set;}
}

IEnumerable <Person> people;


3 commentaires

IEnumerable est un type .NET, pas un terme OOPS


BTW, c'est OOP (programmation orientée objet) pas oups. J'ai édité de le réparer cependant.


@Aamir tu as raison. Je plaidèle à la diffusion sémantique :) - Toutefois, si vous demandez à Alan Kay et à d'autres personnes distinguées, Oops est apte à ce que ce soit devenu.


4 Réponses :


3
votes

iEnumerable code> ne veut rien dire dans le contexte de OOP.

iEnumerable code> sont des interfaces .NET qui indiquent simplement qu'une séquence peut être énumérée. Classes qui implémentent ienumerable code> ou ienumerable code> fournissent des propriétés / méthodes pour rendre cette énumération possible. P>

Par exemple: P>

IEnumerable<Person> people = GetPeopleFromSomewhere();

// iterate through the sequence
foreach (Person p in people)
{
    Console.WriteLine(p.Name);
}

// use LINQ to query the sequence
var peopleOver30 = people.Where(p => p.Age > 30);


0 commentaires

0
votes

iQuéryable s'étend iEnumerable et est destiné à être mis en œuvre par des fournisseurs LINQ. Vous pouvez exécuter des requêtes contre tout fournisseur - c'est-à-dire des fournisseurs de difformes abstraits à l'aide de cette interface. Il s'étend iEnumerable pour que les résultats de la requête puissent être itérais. par exemple. boucle sur tous les objets de la personne avec lastname.equals ("smith")

iEnumerable code> signifie que la variable fait référence à un objet qui vous permettra de se déplacer / énumérer / en boucle sur une collection de OBJETS PERSONNES P>

foreach(Person person in people)
  Console.WriteLine(person.ToString());


0 commentaires


4
votes

iEnumerable

Là de nombreuses manières différentes qu'un ensemble de choses peut être stocké, dans une liste, dans une matrice, dans une base de données, etc. Une chose que ces mécanismes de stockage ont en commun sont que l'ensemble de les choses être organisées peuvent être énumérées , c'est-à-dire que chacune peut être accessible l'une après l'autre à l'aide d'une construction de langue telle que foreach par exemple.

L'interface iEnumerable représente cette interface commune que tous les porteurs d'ensembles de choses doivent activer leur énumération. Par conséquent, ienumbertables représente une interface qui permet une énumération d'un ensemble d'objets de la personne sans être spécifique de la manière réelle dans laquelle ces objets sont stockés.

iquérirable

Ceci est une extension du ienumerable mais représente quelque chose de spécifique à Linq. Dans Linq, vous pouvez spécifier une requête qui peut filtrer et transformer un ensemble (ou des ensembles) d'éléments. Contre une interface purement IEnumerable Ceci serait appelé Linq aux objets, dans lequel chaque étape de la requête est finalement un appel simple à une méthode d'extension.

Cependant, contre un objet qui implémente iquéryable Les choses peuvent être plus sophistiquées. L'objet implémentant iquéryable peut être associé à un fournisseur linq différent qui peut mettre en œuvre l'exécution de requêtes LINQ de manière différente. Par exemple, iQuéryable peut être implémenté par un type associé au fournisseur LINQ-TO-SQL. Dans ce cas, une requête LINQ est transformée en une requête T-SQL un exécuté sur une base de données pour obtenir un ensemble d'éléments (le résultat peut ne pas nécessairement être un ensemble de d'objets ).


1 commentaires

Une des meilleures réponses en anglais simple