2013-01-02 53 views
0

我有一个包含以下字段搜索日期列表

  1. 日期1
  2. x值
  3. y值

我想这个名单对另一个日期列表内SEACH 集合列表。对于第二个列表中的每一个日期,我想获得在这个最短日期和下一个日期之间开始的记录(到最小日期的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列表中的所有记录以及边缘。我将为checbox列表中的每个选定日期执行相同的操作,最后根据用户选择(检查项目)最终/过滤ReplicateBlockLisr。

+2

这是LINQ2SQL或LINQ2Objects? –

+0

物品的退货类型是什么?将鼠标悬停在'var'上,如果这是一个对象,则不会看到您的目标字段。你有一个封装所需字段的接口吗? – IAbstract

+0

显示样品数据和所需的输出。 –

回答

2

你可以通过日期环和填充结果列表:在一个查询

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; 
+0

嘿,我很抱歉,我之前没有发布足够的信息。基本上我认为我根本不应该使用var t?我只需要根据where子句过滤现有的列表。我更详细地编辑了这个问题。再次感谢 –

+0

@tammy这个解决方案有什么问题?只需用'runDate'替换'Date1' –

+0

@lazyberezovsky是的,它工作完美。我试图回答我打算如何处理var t。多谢你们!! –