Eine eigene Erweiterungsmethode für Folgen schreiben in C#
In dieser Lektion schreibst du die Erweiterungsmethode None() für jede Datenfolge, die prüft, ob kein Element eine Bedingung erfüllt.
Einführung
Mit Erweiterungsmethoden ergänzt du vorhandene Typen um Operationen mit verständlichen Namen. Hier schreibst du die Methode None, das Gegenstück zu Any aus LINQ: Sie gibt true zurück, wenn kein Element die Bedingung erfüllt.
Die Methode None<T> erweitert IEnumerable<T> und funktioniert deshalb mit Arrays, List und jeder anderen Folge. Die Schleife durchläuft jedes Element und gibt false zurück, sobald ein Element die Bedingung erfüllt, wird das Ende erreicht, gibt sie true zurück. Das Array [1, 3, 5] enthält keine gerade Zahl, deshalb ist das Ergebnis True.
Ausführbares C#-Beispiel
using System;
using System.Collections.Generic;
static class EnumerableExtensions
{
public static bool None<T>(this IEnumerable<T> source, Func<T, bool> predicate)
{
foreach (T item in source) if (predicate(item)) return false;
return true;
}
}
class Program
{
static void Main() => Console.WriteLine(new[] { 1, 3, 5 }.None(number => number % 2 == 0));
}
TrueMit dem Debugger üben
Mit einer Challenge üben
Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.
- Duplikate entfernen Behalte nur das erste Vorkommen jedes Werts. Einfach
- Eine Liste in Blöcke teilen Schneide eine Liste in aufeinanderfolgende Gruppen fester Größe, wobei die letzte Gruppe bei Bedarf kürzer ist. Einfach