假设我有一个整数列表:
List<int> myInts = new List<int>() {1,2,3,5,8,13,21};
我想获取下一个可用整数,按递增整数排序。不是最后一个或最高的一个,但在这种情况下是不在此列表中的下一个整数。在这种情况下,数字是 4。
是否有一个 LINQ 语句可以给我这个?如:
var nextAvailable = myInts.SomeCoolLinqMethod();
编辑:废话。我说答案应该是 2,但我的意思是 4。对此我深表歉意!
例如:假设您负责分发进程 ID。您想获取当前进程 ID 的列表,并发出下一个,但下一个不应该只是最高值加一。相反,它应该是进程 ID 有序列表中的下一个可用进程。您可以从最高的开始获得下一个可用的,这并不重要。
最佳答案
我看到很多写自定义扩展方法的答案,但是可以用标准的 linq 扩展方法和静态 Enumerable 来解决这个问题。类:
List<int> myInts = new List<int>() {1,2,3,5,8,13,21};
// This will set firstAvailable to 4.
int firstAvailable = Enumerable.Range(1, Int32.MaxValue).Except(myInts).First();
关于c# - 使用 LINQ 获取下一个可用整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11093350/