Ho ottenuto una semplice lista di interi.Determinazione del primo valore disponibile in un elenco di numeri interi
List<int> myInts = new List<int>();
myInts.Add(0);
myInts.Add(1);
myInts.Add(4);
myInts.Add(6);
myInts.Add(24);
Il mio obiettivo è quello di ottenere il primo valore non utilizzato (disponibile) dalla lista.
(il primo valore positivo che non è già presente nella collezione)
In questo caso, la risposta sarebbe 2.
Ecco il mio codice corrente:
int GetFirstFreeInt()
{
for (int i = 0; i < int.MaxValue; ++i)
{
if(!myInts.Contains(i))
return i;
}
throw new InvalidOperationException("All integers are already used.");
}
C'è un modo migliore? Forse usando LINQ? come lo faresti?
Ovviamente qui ho usato gli ints per semplicità ma la mia domanda potrebbe applicarsi a qualsiasi tipo.
Elenco ordinato in ordine crescente? –
@OsmanTuran No. L'elenco non è garantito per essere ordinato in alcun modo. Mi dispiace, ho dimenticato di dirlo. – asmo