0

次のフィールドを含むコレクションリストがあります

  1. 日付1
  2. X値
  3. Y値

このリスト内で別の日付リストに対して検索したい。2番目のリストのすべての日付について、この最小日付と次の日付の間で始まるレコードを取得したい(最小日付まで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 リスト内のすべてのレコードをエッジとエッジの間に見つけます。チェックボックスリストで選択されたすべての日付に対して同じことを行い、最終的にはユーザーの選択(チェックされたアイテム)に基づいて最終/フィルターされたReplicateBlockLisrを持ちます。

4

1 に答える 1

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);
}

1つのクエリでそれを行うこともできます。

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; 
于 2013-01-02T21:29:27.740 に答える