Created
April 3, 2019 10:50
-
-
Save luisdeol/a2477a5bda9deaf78a72a229d309168d to your computer and use it in GitHub Desktop.
Implement IEnumerable
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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