So I've got a class and a generic List inside of it, but it is private.
class Contacts
{
List<Contact> contacts;
...
}
I want to make the class work as this would do:
foreach(Contact in contacts) .... ;
like this (not working):
Contacts c;
foreach(Contact in c) .... ;
In the example above the Contact class instance c has to yield return every item from contacts(private member of c)
How do I do it? I know it has to be IEnumerable with yield return, but where to declare that?
Or return an
IEnumerator<Contact>
by providing aGetEnumerator
method:The
foreach
looks forGetEnumerator
. Have a look here for the language specification details regarding this: https://stackoverflow.com/a/3679993/284240How to make a Visual C# class usable in a foreach statement
How about just extending
List<Contact>
If you don't want to extend any other class its a very simple, fast option:
Implement the interface IEnumerable:
Should do a trick for you.