Obtuve una lista simple de ints.Determinación del primer valor disponible en una lista de enteros
List<int> myInts = new List<int>();
myInts.Add(0);
myInts.Add(1);
myInts.Add(4);
myInts.Add(6);
myInts.Add(24);
Mi objetivo es obtener el primer valor no utilizado (disponible) de la lista.
(el primer valor positivo que no está ya presente en la colección)
En este caso, la respuesta sería 2.
Aquí está mi código actual:
int GetFirstFreeInt()
{
for (int i = 0; i < int.MaxValue; ++i)
{
if(!myInts.Contains(i))
return i;
}
throw new InvalidOperationException("All integers are already used.");
}
¿Existe una ¿mejor manera? Tal vez usando LINQ? ¿Cómo harías esto?
Por supuesto, aquí utilicé ints para simplificar, pero mi pregunta podría aplicarse a cualquier tipo.
¿La lista está ordenada por orden ascendente? –
@OsmanTuran Nope. No se garantiza que la lista esté ordenada de ninguna manera. Lo siento, olvidé mencionar eso. – asmo