2015-10-04 102 views
0
a = 1-30 
b = 40-50 
c = 60-100 

上面的范围是1-100。此范围错过31-39。是否C#具有检查指定范围(1-100)是否缺少任何范围(例如:31-39)或缺少值(例如:31)的功能?C#检查指定范围内的丢失范围

问候

+0

您的输入不清楚。 a,b和c是整数列表吗? – DarkKnight

+0

其实是一个双精度列表 – wiwiedbulu

回答

3

假定“输入”包含输入,下面的代码将返回true,如果任何号码从范围丢失:

bool result = Enumerable.Range(1, 100).Except(input).Any(); 
+1

请注意,为了做到这一点,他必须将'a','b'和'c'连接到一个'IEnumerable '。 –

1

,你可以创建自己的方法,这样的:

public List<int> CheckRange(int FirstRangeEnd, int SecondRangeStart) 
    { 
     List<int> missing = new List<int>(); 

     if (SecondRangeStart - FirstRangeEnd == 0) 
     { 
      missing.Add(-1); 
      return missing; 
     } 
     for (int i= 0; i<= SecondRangeStart - FirstRangeEnd; i++) 
     { 
      missing.Add(FirstRangeEnd + i); 
     } 
     missing.RemoveAt(0); 
     missing.RemoveAt(missing.Count - 1); 
     return missing; 
    }