你能帮助我更好地验证或避免新的年龄段与现有的年龄范围重叠吗?
我有一个“年龄范围”实体列表,它具有minAge,maxAge属性,我想在我的列表中添加一个年龄范围类型的新对象,但它不能与现有年龄范围重叠。
List[0] (MinAge = 0, MaxAge = 2)
List[1] (MinAge = 3, MaxAge = 18)
List[2] (MinAge = 19, MaxAge = 54)
如果我想添加Min = 10和Max = 16 ......必须避免。我只需要添加系列中继续的值。
我试图通过列表中的每个索引来验证每个范围的最小值和最大值,但我想知道是否有其他方法可以使用linq或类似的方法来执行此操作
示例:
foreach(Age age in list)
{
if(age.min >= min && max <= age.max)
{
return false;
}
}
答案 0 :(得分:2)
.Any(i => i.max >= min && i.min <= max);
如果存在重叠,则会返回True
答案 1 :(得分:1)
return !list.Any(x => x.min <= min && x.max >= min || x.min <= max && x.max >= max);