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

Дальность действия 1-100. Этот пробег 31-39.C# проверка недостающего диапазона от указанного диапазона

Есть ли функция C#, которая проверяет, не указан ли указанный диапазон (1-100) какого-либо диапазона (пример: 31-39) или отсутствует значение (пример: 31)?

С уважением

+0

Ваш ввод неясен. Являются ли a, b и c списками целых чисел? – DarkKnight

+0

На самом деле это список двойных – wiwiedbulu

ответ

3

Предполагая, что «вход» содержит вход, следующий код возвращает истину, если все номера, отсутствуют в диапазоне:

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; 
    } 
Смежные вопросы