Example #1
0
        public static void AnwendungVerschiedenerSortierUndFiltermethoden()
        {
            string message = string.Empty;

            HighscoreListe = HighscoreListe.OrderByDescending(SortierKriterium).ToList();

            //Übung: Filter-Methode mit selbstgewählten FilterKriterium aufrufen
            HighscoreListe = Filtern(HighscoreListe, FilterNachScore);

            //Lambda: anonyme Methode
            HighscoreListe = Filtern(HighscoreListe, (HighscoreEintrag item) =>
            {
                return(item.Name[0] == 'A');
            });

            HighscoreListe = Filtern(HighscoreListe, h => h.Name[0] == 'A');

            HighscoreListe = HighscoreListe.OrderByDescending(eintrag => eintrag.Score).ToList();

            //Where ist die Linq-Implementierung der Filter-Methode
            HighscoreListe = HighscoreListe.Where(h => h.Name[0] == 'A').ToList();

            FilterMethode _meth = h => h.Name[0] == 'A';

            _meth(new HighscoreEintrag(2, "Test", DateTime.Today));


            foreach (var item in HighscoreListe)
            {
                message += $"{item.Name} \t{item.Score}\t {item.Datum.ToShortDateString()}\n";
                //Alternative wenn HighscoreEintrag eine ToString-Methode definiert:
                //message += $"{item}\n";
            }



            System.Windows.Forms.MessageBox.Show(message);
        }
Example #2
0
        public static List <HighscoreEintrag> Filtern(List <HighscoreEintrag> zufilterndeListe, FilterMethode filterKriterium)
        {
            List <HighscoreEintrag> gefilterteListe = new List <HighscoreEintrag>();

            foreach (var item in zufilterndeListe)
            {
                //Prüfe ob der Eintrag dem Filterkriterium genügt
                //Dynamischen Algorithmus aufrufen
                if (filterKriterium(item))
                {
                    gefilterteListe.Add(item);
                }
            }
            return(gefilterteListe);
        }