我在IntExtensions类中有两种方法可以帮助生成下一个可用的增量值(不在需要排除的现有整数列表中)。
我不认为我正在以最佳方式解决NextIncrementalValueNotInList方法,并且想知道是否可以更好地使用linq返回下一个可用的int吗?

public static bool IsInList(this int value, List<int> ListOfIntegers) {
    if (ListOfIntegers.Contains(value))
        return true;

    return false;
}

public static int NextIncrementalValueNotInList(this int value,
                                                List<int> ListOfIntegers) {

        int maxResult;
        maxResult = ListOfIntegers.Max() + 1;

        for (int i = value; i <= maxResult; i++)
        {
            if (!(i.IsInList(ListOfIntegers)))
            {
                return i;
            }
        }
        return maxResult;
    }

最佳答案

使用linq,您的方法将如下所示:

return IEnumerable.Range(1, ListOfIntegers.Count + 1)
                  .Except(ListOfIntegers)
                  .First();

08-06 18:51