如何查询包含多个列表的对象列表?

时间:2016-10-05 14:10:42

标签: c# linq

我有一份患者名单。 每位患者都有几个清单:

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

1 个答案:

答案 0 :(得分: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的Patient列表,并且结果对象将包含serverTimeStamps属性中的正确日期