Escrever um método de extensão para sequências em C#
Nesta lição, você vai escrever o método de extensão None() para qualquer sequência, verificando se nenhum elemento atende a uma condição.
Introdução
Os métodos de extensão ajudam a acrescentar operações com nomes claros a tipos existentes. Aqui, você vai escrever o método None, o oposto do Any do LINQ: ele retorna true quando nenhum elemento atende à condição.
O método None<T> estende IEnumerable<T>, então funciona com arrays, List e qualquer outra sequência. O laço percorre cada elemento e retorna false assim que encontra um que atende à condição; se chegar ao fim, retorna true. O array [1, 3, 5] não tem nenhum número par, então o resultado é True.
Exemplo de C# executável
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));
}
TruePratique com o depurador
Pratique com um desafio
Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.
- Remover Duplicatas Mantenha apenas a primeira ocorrência de cada valor. Fácil
- Dividir uma lista em blocos Corte uma lista em grupos consecutivos de tamanho fixo, com um último grupo menor se necessário. Fácil