Определение первого доступного значения в списке целых чисел

Я получил простой список целых.

List<int> myInts = new List<int>();

myInts.Add(0);
myInts.Add(1);
myInts.Add(4);
myInts.Add(6);
myInts.Add(24);

Моя цель - получить первое неиспользуемое (доступное) значение из списка.

(первое положительное значение, которого еще нет в коллекции)

В этом случае ответ будет 2.

Вот мой текущий код:

int GetFirstFreeInt()
{
    for (int i = 0; i < int.MaxValue; ++i)
    {
        if(!myInts.Contains(i))
            return i;
    }

    throw new InvalidOperationException("All integers are already used.");
}

Есть ли способ лучше? Может быть, с помощью LINQ? Как бы вы это сделали?

Конечно, здесь я использовал int для простоты, но мой вопрос может относиться к любому типу.

Ответы на вопрос(2)

Ваш ответ на вопрос