Exercices C#

É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

C#
Exécuter le code →
Program.cs
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));
}
Résultat de l’exécution
True

S'entraîner avec le débogueur

Placez un point d'arrêt sur une affectation ou une condition importante, cliquez sur Debug et inspectez les valeurs locales avant de passer à la ligne suivante.

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.

Tous les défis