Are Multiple Iterators possible in c=C#?
c#, c#-3.0, iterator
Solution
You could certainly create different iterators to traverse in different ways. For example, you could have:
public class Tree<T>
{
public IEnumerable<T> IterateDepthFirst()
{
// Iterate, using yield return
...
}
public IEnumerable<T> IterateBreadthFirst()
{
// Iterate, using yield return
...
}
}
Is that the kind of thing you were asking?
You could also potentially write:
public class Foo : IEnumerable<int>, IEnumerable<string>
but that would cause a lot of confusion, and the `foreach` loop would pick whichever one had the non-explicitly-implemented `GetEnumerator` call.
You can also iterate multiple times over the same collection at the same time:
foreach (Person person1 in party)
{
foreach (Person person2 in party)
{
if (person1 != person2)
{
person1.SayHello(person2);
}
}
}
Problem
Are multiple iterators (for a single class or object) possible in C# .NET? If they are, give me some simple examples. Sorry if the question is not understandable and please make me clear.