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
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));
}
TrueEsercitati con il debugger
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.
- Rimuovi Duplicati Mantieni solo la prima occorrenza di ogni valore. Facile
- Dividere una lista in blocchi Taglia una lista in gruppi consecutivi di dimensione fissa, con un ultimo gruppo più corto se necessario. Facile