J'ai 2 classes et dans la Persons
classe que je veux ajouter la capacité de boucle à travers les propriétés du nom de la collection de personne utilisant une boucle foreach, comme ceci:La mise en œuvre question IEnumerable
foreach (string name in Persons.Names)
{
// do something
}
Comment pourrais-je faire ce?
Ce sont mes classes:
class Person
{
public string Name
{
get;
set;
}
public string Surname
{
get;
set;
}
}
class Persons : IEnumerable<Person>
{
List<Person> persons = new List<Person>();
public IEnumerator<Person> GetEnumerator()
{
foreach (Person p in persons)
{
yield return p;
}
}
System.Collections.IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
public IEnumerator<string> Names
{
// implement looping through Name property of Person class
}
public Persons()
{
}
public void Add(Person p)
{
persons.Add(p);
}
public string this[int index]
{
get { return this[index]; }
}
}
Il devrait y avoir un accesseur serré là-dedans get et – Oskar
... +1 pour l'exhaustivité –
Votre LINQ semble confondre avec IEnumerable IEnumerator . –
Mark