У меня есть функция, которая добавляет новое правило цены, каждое правило цены имеет два диапазона (A_Low, A_High) (B_Low, B_High). Когда функции хотят добавить новую цену, необходимо убедиться, что диапазоны не перекрываются, так что каждое введенное значение А и В может соответствовать только одному указанному праву цены. A & B могут быть положительными или отрицательными.Проверка перекрытия числовых значений в списке?
Пример логики:
Правило 1: A_Low = 0,0, A_High = 1,0; B_Low 0,0, B_High = 0,25
Если я пытаюсь добавить следующие правила:
Случай 1: A_Low = 0,5, A_High = 1,5; B_Low 0.26, B_High = 1.0
Вышеприведенный тестовый пример должен быть разрешен, чтобы A мог перекрываться, если B не работает, B может перекрываться, если A нет. У меня возникла проблема, обертывающая мою голову вокруг правильной логики, чтобы оценить и определить, действительно ли правило цены, которое я пытаюсь добавить, ... Я знаю, что есть функции для проверки перекрывающихся дат, есть ли один для перекрывающихся числовых диапазонов?
Я все еще не могу понять, что у меня есть не так, вот мой пример кода:
For Each p In Rules
If p.A_Max > A_Min And p.A_Min < A_Max Then
If p.B_Max> B_Min And p.B_Min < B_Max Then
Return False
End If
End If
If p.B_Max> B_Min And p.B_Min < B_Max Then
If p.A_Max > A_Min And p.A_Min < A_Max Then
Return False
End If
End If
Next
Return True
Если вы еще не знакомы с C#, то есть число парсеров кода C# на vb.net или наоборот, которые преобразуют блок кода для вас ... простой Google поиск должен тянуть большое количество из них. – user2366842