public static List <T> Filtrar <T>(this List <T> lista, IFiltro <T> filtro) { var resultado = new List <T>(); foreach (var item in lista) { if (filtro.Verificar(item)) { resultado.Add(item); } } return(resultado); }