Gå til indholdet

N281 IEnumable

Du skal oprette en simpel konsolapplikation, der demonstrerer brugen af IEnumerable-interfacet i C#. Applikationen skal bestå af to klasser: Bil og Garage. Bil kan blot indeholde egenskaberne Mærke og Model, og Garage egenskaberne Id og Navn. Garagen skab bestå af en private liste af biler, og give mulighed for at tilføje en bil gennem en metode. Samtidigt skal Garage kunne itereres.

I din Main-metode skal du oprette et Garage-objekt, tilføje nogle Bil-objekter til det, og derefter bruge en foreach-løkke til at udskrive information om hver bil - eksempelvis:

Garage garage = new Garage();
garage.Tilføj(new Bil { Mærke = "Toyota", Model = "Corolla" });
garage.Tilføj(new Bil { Mærke = "Ford", Model = "Focus" });

foreach (Bil bil in garage)
{
    Console.WriteLine($"{bil.Mærke} {bil.Model}");
}
Klik for at se et forslag til en løsning
using System;
using System.Collections;
using System.Collections.Generic;

namespace BilGarageDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Garage garage = new Garage();
            garage.Tilføj(new Bil { Mærke = "Toyota", Model = "Corolla" });
            garage.Tilføj(new Bil { Mærke = "Ford", Model = "Focus" });

            foreach (Bil bil in garage)
            {
                Console.WriteLine($"{bil.Mærke} {bil.Model}");
            }
        }
    }

    class Bil {
        public string Mærke { get; set; }
        public string Model { get; set; }
        // Yderligere egenskaber efter behov
    }

    class Garage : IEnumerable<Bil> {

        public string Id { get; set; }
        public string Navn { get; set; }

        private List<Bil> biler = new List<Bil>();

        public IEnumerator<Bil> GetEnumerator() {
            return biler.GetEnumerator();
        }

        IEnumerator IEnumerable.GetEnumerator() {
            return this.GetEnumerator();
        }

        // Metode til at tilføje biler til garagen
        public void Tilføj(Bil bil) {
            biler.Add(bil);
        }
    }
}