C# 找到列表中没有的号码

C# 找到列表中没有的号码,c#,sql,sql-server,C#,Sql,Sql Server,我需要找到列表中没有的号码。它可以是负值或正值。请看下表: +----+--------+---------------------+ | id | sorder | Name | +----+--------+---------------------+ | 1 | 2 | Chevy | +----+--------+---------------------+ | 2 | 78 | Michilin

我需要找到列表中没有的号码。它可以是负值或正值。请看下表:

+----+--------+---------------------+
| id | sorder | Name                |
+----+--------+---------------------+
| 1  | 2      | Chevy               |
+----+--------+---------------------+
| 2  | 78     | Michilin            |
+----+--------+---------------------+
| 3  | -34    | XM                  |
+----+--------+---------------------+
| 4  | 97     | Manual Transmission |
+----+--------+---------------------+
| 5  | 3911   | Halogen             |
+----+--------+---------------------+
给定此查询结果,我必须找到不在
排序中的任何数字
sorder
可以是任何负数或正数。如果可能的话,我想使用sql来查找结果。下面是我想要的结果集:

+----+--------+---------------------+
| id | sorder | Name                |
+----+--------+---------------------+
| 1  | 2      | Chevy               |
+----+--------+---------------------+
| 2  | 78     | Michilin            |
+----+--------+---------------------+
| 3  | -34    | XM                  |
+----+--------+---------------------+
| 4  | 97     | Manual Transmission |
+----+--------+---------------------+
| 5  | 3911   | Halogen             |
+----+--------+---------------------+
| 6  | 690    | Valvoline 5w30      |
+----+--------+---------------------+

假设您有一个
列表
,您可以执行以下任一操作

选项1

如列表中所示,取
Max
并添加1

int maxSOrder = objecList.Max(s=>s.sorder);
int nextIndex = maxSOrder +1;
选项2

如果您正在寻找从最小数量中查找最小可用索引的解决方案,您可以这样做

int minSOrder = objecList.Min(s=>s.sorder);
int maxSOrder = objecList.Max(s=>s.sorder);
int minNotInList = Enumerable.Range(minSOrder, maxSOrder-minSOrder)
                             .FirstOrDefault(f=> !objectList.Any(o=>o.sorder == f);

if(minNotInList ==0)  // just fallback logic, when default is used
{ 
    minNotInList = maxSOrder +1; 
}

请提供所需结果您可以找到最大值并添加1…从何处获取
690 Valvoline 5w30
?您所需的结果集包括给定结果集中的所有数字,但您说您想要任何不在“排序”中的数字?为什么不忽略给定的列表并选择整个表?抱歉,解释有限。基本上,我试图给sorder分配一个临时值。我不能使用max+1,因为另一个线程可能会指定该值。更糟糕的是,我不能锁定表,所以我不能使用max。我在想也许我可以从-32B和32B中选择一个随机数。但我不确定这一数字多久会发生冲突。我估计每个数据集不超过1000条记录。