using System.Collections.Generic;
public static void Main()
var intervalo = new List<(int? min, int? max)>();
intervalo.Add((null, 10));
intervalo.Add((11, null));
var resultado = IntervaloSemLacuna<int>(intervalo, 1);
Console.WriteLine(resultado);
private static bool IntervaloSemLacuna<T>(IEnumerable<(T? min, T? max)> lista, T? unidade) where T : struct
var listaOrdenada = lista
for (var i = 0; i < listaOrdenada.Count - 1; i++)
var limiteLacuna = Convert.ToDecimal(listaOrdenada[i].max.Value) + Convert.ToDecimal(unidade.Value);
var inicioProximoIntervalo = Convert.ToDecimal(listaOrdenada[i + 1].min.Value);
if (inicioProximoIntervalo > limiteLacuna)