Écrire sa propre méthode d'extension pour les séquences en C#
Dans cette leçon, vous allez écrire la méthode d'extension None() pour toute séquence, qui vérifie qu'aucun élément ne remplit une condition.
Introduction
Les méthodes d'extension permettent d'ajouter aux types existants des opérations aux noms parlants. Ici, vous allez écrire la méthode None, l'inverse de Any dans LINQ : elle renvoie true quand aucun élément ne remplit la condition.
La méthode None<T> étend IEnumerable<T>, elle fonctionne donc avec les tableaux, les List et toute autre séquence. La boucle parcourt chaque élément et renvoie false dès qu'un élément remplit la condition ; si elle arrive au bout, elle renvoie true. Le tableau [1, 3, 5] ne contient aucun nombre pair, le résultat est donc True.
Exemple C# exécutable
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));
}
TrueS'entraîner avec le débogueur
S'entraîner avec un défi
Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.
- Supprimer les doublons Ne conserver que la première occurrence de chaque valeur. Facile
- Découper une liste en blocs Découper une liste en groupes consécutifs d'une taille fixe, avec un dernier groupe plus court si nécessaire. Facile