用C#写多个重量数值区间是否有重叠的判断代码
时间: 2023-12-10 10:40:01 浏览: 102
可以使用以下代码实现多个重量数值区间是否有重叠的判断:
```csharp
public bool CheckOverlap(List<Tuple<double, double>> intervals)
{
// 对区间按照左端点进行排序
intervals.Sort((a, b) => a.Item1.CompareTo(b.Item1));
// 检查相邻的区间是否有重叠
for (int i = 1; i < intervals.Count; i++)
{
if (intervals[i].Item1 < intervals[i-1].Item2)
{
return true;
}
}
return false;
}
```
这个函数接受一个 `List<Tuple<double, double>>` 类型的参数 `intervals`,其中每个元素表示一个区间的左右端点。函数首先对区间按照左端点进行排序,然后依次检查相邻的区间是否有重叠。如果有重叠,则返回 `true`,否则返回 `false`。
相关问题
C# 如何判断多个时间段是否有重叠部分
在 C# 中判断多个时间段是否有重叠部分,可以比较每个时间段的开始时间和结束时间来实现。以下是一个示例代码:
```csharp
public static bool CheckOverlap(List<DateTime[]> timeRanges)
{
for (int i = 0; i < timeRanges.Count - 1; i++)
{
for (int j = i + 1; j < timeRanges.Count; j++)
{
if (timeRanges[i][0] < timeRanges[j][1] && timeRanges[j][0] < timeRanges[i][1])
{
return true;
}
}
}
return false;
}
```
上面的代码中,`timeRanges` 是一个包含多个时间段的列表,每个时间段用一个包含两个元素的数组表示,第一个元素是开始时间,第二个元素是结束时间。函数会遍历所有的时间段组合,如果发现有重叠部分,则返回 `true`,否则返回 `false`。
c# 判断两个矩形是否重叠
可以使用以下代码来判断两个矩形是否重叠:
```
public bool IsOverlap(Rectangle rect1, Rectangle rect2)
{
if (rect1.IntersectsWith(rect2))
{
return true;
}
else
{
return false;
}
}
```
其中,`Rectangle` 是 C# 中表示矩形的结构体,`IntersectsWith` 方法用于判断两个矩形是否有交集。如果两个矩形有交集,则认为它们重叠,返回 `true`;否则认为它们不重叠,返回 `false`。
阅读全文