C# :: Aufgabe #304 :: Lösung #1

2 Lösungen Lösungen öffentlich
#304

Steckbrief-Informationen

Anfänger - C# von DragStar - 06.04.2020 um 08:37 Uhr
Baue ein passendes Array, welches du mit Steckbriefinfos füllst (z.B. Name, Alter, Hobbies usw).
Danach lass den User ein Hobby eingeben und gib dann den Namen der Personen ein, die dieses Hobby haben.


#1
vote_ok
von JKooP (18090 Punkte) - 16.04.2020 um 12:03 Uhr
NET Core 3.x

Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
#nullable enable

namespace CS_Aufgabe_304_Steckbrief
{
    public enum Hobbys
    {
        Schwimmen = 1,
        Radfahren,
        Joggen,
        Skifahren,
        Modellbahn,
        Lesen
    }

    public class Steckbrief
    {
        public Steckbrief(string nachname, string? vorname = null, int? alter = null, params Hobbys[]? hobby)
        {
            Nachname = nachname;
            Vorname = vorname;
            Alter = alter;
            Hobby = hobby;
        }
        public string Nachname { get; }
        public string? Vorname { get; }
        public int? Alter { get; }
        public Hobbys[]? Hobby { get; }
    }

    class Program
    {
        private static List<Steckbrief>? _lstSB;

        static void Main(string[] args)
        {
            Beispielsteckbriefe();

            Console.WriteLine("Auswahlmöglichkeiten\n");
            var i = 0;
            foreach (var h in Enum.GetNames(typeof(Hobbys)))
                Console.WriteLine($"({++i}) {h}");

            Console.Write("Bitte Auswahl treffen: ");
            _ = int.TryParse(Console.ReadLine(), out var s);
            if (s < 1 || s > Enum.GetNames(typeof(Hobbys)).Count()) return;

            
            var lstHobby = _lstSB.Where(x => x.Hobby != null && x.Hobby.Any(y => (int)y == s)).Select(x => $"- {x.Nachname}").ToList();
            Console.WriteLine($"\nHobby '{Enum.GetName(typeof(Hobbys), s)}' ({lstHobby.Count()}):");
            lstHobby.ForEach(Console.WriteLine);
        }

        static void Beispielsteckbriefe()
        {
            _lstSB = new List<Steckbrief>
            {
                new Steckbrief("Meyer", "Hans", 45, null),
                new Steckbrief("Mueller", null, 76, Hobbys.Schwimmen, Hobbys.Joggen, Hobbys.Modellbahn),
                new Steckbrief("Schulze", "Heike", null, Hobbys.Schwimmen, Hobbys.Radfahren),
                new Steckbrief("Lehmann", null, 33, Hobbys.Schwimmen, Hobbys.Skifahren),
                new Steckbrief("Helm", "Franz", 63, Hobbys.Lesen)
            };
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben