CSharp · Console
using System;
using System.Linq;
using System.Collections.Generic;
using static System.Console;
public class Program
{
KeyValuePair<Func<decimal, bool>, string>[] pares = new[]
{
new KeyValuePair<Func<decimal, bool>, string>(valor => valor > 5, "Maior que 5"),
new KeyValuePair<Func<decimal, bool>, string>(valor => valor > 0 && valor < 5, "Maior que 0 e menor que 5"),
new KeyValuePair<Func<decimal, bool>, string>(valor => valor > 0, "Número positivo")
};
static string ValidarTotalAgrupado(decimal valor, params KeyValuePair<Func<decimal, bool>, string>[] pares)
{
var ret = pares.Where(p => p.Key(valor))
.Select(p => p.Value)
.Aggregate((a, b) => $"{a}, {b}");
return ret;
}
static string ValidarTotal(decimal valor, params KeyValuePair<Func<decimal, bool>, string>[] pares)
{
foreach(var item in pares)
{
if(item.Key(valor)) {
return item.Value;
}
}
return null;
}
public void Main()
{
var testes = new[]
{
new { Valor = 6m },
new { Valor = 2m },
new { Valor = 0.5m }
};
foreach(var teste in testes)
{
var res = ValidarTotal(teste.Valor, pares);
var resAgrupado = ValidarTotalAgrupado(teste.Valor, pares);
WriteLine($"Valor: {teste.Valor:n2}\nResultado: {res}\nAgrupado: {resAgrupado}\n");
}
}
}