2016-10-05 82 views
-2

我有一個病人列表。 每個病人有幾個名單:如何查詢包含多個列表的對象列表?

public class Patient 
{ 
    private List<DateTime> serverTimeStamps; 
    protected List<int> sessionStages; 
    protected List<string> revIPage; 
    protected List<double> current; 
    protected List<int> n_ok; 
    protected List<int> n_LE; 
} 

的患者名單被稱爲ptLsit,我試圖讓列表中的項目,其中serverTimeStamp是大於_initTimeToAskData(從所有的名單,而不僅僅是serverTimeStamps)。 我能給的最好的例子就是基於這一類

ptLsit.Where(x=> x.ServerTimeStamps.Select(ts => ts >= _initTimeToAskData)) 
+0

目前還不清楚你想要的輸出是什麼。你是否希望那裏的'患者'列表中的timeStammp大於'_initTimeToAskData',或者你想要實際的時間戳作爲輸出嗎? –

+0

我想要一個患者列表,我希望他們的列表僅包含插入serverTimeStamp中的數據,該數據大於_initTimeToAskData – Orensig

+0

此評論不清楚:「來自所有列表,而不僅僅是serverTimeStamps」。其他列表不包含時間戳 – Andrei

回答

0

public class Patient 
{ 
    public List<DateTime> serverTimeStamps; 
    public List<int> sessionStages; 
    public List<string> revIPage; 
    public List<double> current; 
    public List<int> n_ok; 
    public List<int> n_LE; 
} 

試試這個:

var result = ptLsit.Where(p => p.serverTimeStamps.Any(d => d > _initTimeToAskData)) 
    .Select(p => new Patient{ 
     serverTimeStamps = p.Where(x => x > DateTime.Now).ToList(), 
     // Fill the other properties... 
     // ... 
     }); 

,你會得到一個包含至少一個DateTime病人名單大於參數_initTimeToAskData並且結果對象將包含serverTimeStamps屬性中的正確日期