Skip to content

Instantly share code, notes, and snippets.

@luisdeol
Created April 3, 2019 10:50
Show Gist options
  • Save luisdeol/a2477a5bda9deaf78a72a229d309168d to your computer and use it in GitHub Desktop.
Save luisdeol/a2477a5bda9deaf78a72a229d309168d to your computer and use it in GitHub Desktop.
Implement IEnumerable
using System;
using System.Collections;
using System.Collections.Generic;
namespace CreateAndImplClassHierar
{
class Program
{
static void Main(string[] args)
{
var race = new Race("Crash Team Racing");
var car1 = new RaceCar(1, "Doctor Neo Cortex");
var car2 = new RaceCar(2, "Crash Bandicoot");
var car3 = new RaceCar(2, "Doctor N. Gin");
race.AddCar(car1);
race.AddCar(car2);
race.AddCar(car3);
foreach (var car in race)
{
Console.WriteLine($"Car number: {car.Number}, Driver: {car.Driver}");
}
Console.ReadKey();
}
}
public class Race : IEnumerable<RaceCar>
{
private List<RaceCar> _cars;
public Race(string title)
{
Title = title;
_cars = new List<RaceCar>();
}
public string Title { get; set; }
public void AddCar(RaceCar car)
{
_cars.Add(car);
}
public IEnumerator<RaceCar> GetEnumerator()
{
foreach(var car in _cars)
{
yield return car;
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
public class RaceCar
{
public RaceCar(int number, string driver)
{
Number = number;
Driver = driver;
}
public int Number { get; set; }
public string Driver { get; set; }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment