微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查值是否在 IList 的范围内

如何解决如何检查值是否在 IList 的范围内

我有以下代码返回 IList<>

var productCodes = await ProductsService.GetAllProductsAsync();

我的模型:

public int ProductStartCode { get; set; }
public int ProducEndCode { get; set; }

创建新的产品代码范围时,我想检查新代码是否与现有产品代码重叠

我的产品代码如下所示:

 ProductStartCode  ProductEndCode 
   100001            100003
   100004            100008
   100009            100011

我需要检查我想要完成的事情,

For example if I enter: 100001,100002,100003 are overlapping since they in between 100001 & 100002 range,100004,100005,100006,100007,100008 are also overlapping since they in between 100004 & 100008 range,

解决方法

给定一个范围列表,以及一个检查重叠的可能范围,看看可能范围的开始或结束是否在列表中的任何范围之间:

var isOverlapping = productCodes.Any(p => p.ProductStartCode <= possibleStartCode && possibleStartCode <= p.ProductEndCode) ||
                    productCodes.Any(p => p.ProductStartCode <= possibleEndCode && possibleEndCode <= p.ProductEndCode);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。