Esercizi C#

Scrivere un metodo di estensione per sequenze in C#

In questa lezione scriverai il metodo di estensione None() per qualsiasi sequenza, che verifica che nessun elemento soddisfi una condizione.

Introduzione

I metodi di estensione aiutano ad aggiungere operazioni dai nomi chiari a tipi esistenti. Qui scriverai il metodo None, l'opposto di Any di LINQ: restituisce true quando nessun elemento soddisfa la condizione.

Il metodo None<T> estende IEnumerable<T>, quindi funziona con array, List e qualsiasi altra sequenza. Il ciclo scorre ogni elemento e restituisce false appena ne trova uno che soddisfa la condizione; se arriva alla fine, restituisce true. L'array [1, 3, 5] non contiene numeri pari, quindi il risultato è True.

Esempio C# eseguibile

C#
Esegui il codice →
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));
}
Risultato dell'esecuzione
True

Esercitati con il debugger

Metti un breakpoint su un'assegnazione o una condizione importante, fai clic su Debug ed esamina i valori locali prima di passare alla riga successiva.

Esercitati con una sfida

Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.

Tutte le sfide