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); }
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); }