【发布时间】:2012-12-13 12:57:17
【问题描述】:
我正在尝试对列表中的数据进行一些手动验证。
我有一个 MachineryRecord 类,我对它进行排序,然后按 JobNumber 分组,现在我需要在每个具有重叠时间的分组列表中找到任何结果,例如。开始时间到结束时间与另一个记录 StartTime 到 EndTime 重叠。
到目前为止,这是我得到的:
int invalidCount = 0;
var sorted = _machineRecords.OrderBy(x => x.StartTime).ToList();
var grouped = sorted.GroupBy(x => x.JobNumber).ToList();
foreach(IGrouping<int,MachineryRecord> mac in grouped)
{
var queryResults = mac.//Linq query to find overlapping times
invalidCount += queryResults.Count;
}
if(invalidCount > 0)
return false;
else
return true;
这是 MachineRecord 对象的缩减版:
public class MachineryRecord
{
public int ID { get; set; }
public float StartTime { get; set; }
public float EndTime { get; set; }
}
所以我的问题是实现此目的的 linq 查询是什么?
感谢您的帮助。
【问题讨论】:
-
时间的格式是什么?你为什么使用浮动?是 24 小时制的吗?你能展示开始和结束时间的样本吗?
-
抱歉忘了说 StartTime 和 EndTime 取自机器中的计数器,类似于汽车中的里程表,但计算使用的小时数。因此使用浮点数
标签: c# linq validation