Skip to content

Instantly share code, notes, and snippets.

Created May 25, 2012 20:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/2790271 to your computer and use it in GitHub Desktop.
Save anonymous/2790271 to your computer and use it in GitHub Desktop.
foreach over non-IEnumerable
using System;
namespace ConsoleApplication2
{
class MyEnumerable
{
private int currentIndex = -1;
public string[] Values { get; set; }
public string Current
{
get { return Values[currentIndex]; }
}
public MyEnumerable GetEnumerator()
{
return this;
}
public bool MoveNext()
{
return ++currentIndex < Values.Length;
}
public void Dispose()
{
}
}
class Program
{
static void Main()
{
var fakeEnumerable = new MyEnumerable { Values = new[] { "a", "b", "c" } };
foreach (var value in fakeEnumerable)
{
Console.WriteLine(value);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment