搜索日期列表
本文关键字:列表 日期 搜索 | 更新日期: 2023-09-27 17:50:40
我有一个包含以下字段的集合列表
- Date1
- Xvalue
- Yvalue
我想在此列表中对另一个日期列表搜索。对于第二个列表中的每个日期,我想获得从这个最小日期到下一个日期(距离最小日期30分钟)之间的记录。
foreach (var item in selectedDates.Where(x => x.Checked))
{
// item.minDate is my starting date
// I want all records between item.minDate and 30 minutes added to it)
var t = lf.ReplicateBlocks.FindAll(o=> o.minimumCompletionDate >= item.
}
**UPDATE**
public class ReplicateBlock
{
public int ReplicateId { get; set; }
public string AssayNumber { get; set; }
public DateTime InitiationDate { get; set; }
public DateTime InitiationTime { get; set; }
public DateTime minimumCompletionDate { get; set; }
public DateTime minimumCompletionTime { get; set; }
public string correctedCount { get; set; }
public string moduleName { get; set; }
public string exception { get; set; }
}
public class RunLogEntryDatesDisplay
{
public DateTime runDate { get; set; }
public String DateRange { get; set; }
public bool Checked { get; set; }
public string MinimumReplicateId { get; set; }
}
我正在寻找的最终输出是修订的复制块列表。RunLogEntryDatesDisplay是从视图发布的一个复选框列表。在此列表中,我查看已选中的日期runDate,从第一个选择开始,我向其添加30分钟,并找到ReplicateBlock list 中的所有记录。我将对复选框列表中的每个选定日期执行相同的操作,最后将根据用户选择(选中项)生成最终/过滤的ReplicateBlockLisr。
您可以遍历日期并填充结果列表:
List<ReplicateBlock> blocks = new List<ReplicateBlock>();
foreach (var item in selectedDates.Where(x => x.Checked))
{
var t = lf.ReplicateBlocks.Where(o=>
o.minimumCompletionDate >= item.minDate &&
o.minimumCompletionDate <= item.minDate.AddMinutes(30));
blocks.AddRange(t);
}
您也可以在一个查询中完成:
var query = from d in selectedDates
from o in lf.ReplicateBlocks
where d.Checked &&
o.minimumCompletionDate >= d.minDate &&
o.minimumCompletionDate <= d.minDate.AddMinutes(30))
select o;