如何使用linq从类中的类列表中获取值

cod*_*deg 0 c# linq

我想访问类内部列表中的类成员值.我的课程看起来像这样.的SureViewEvents类包含一个进入报警父级别的细节和SureViewEventDetails用于报警的细节的值.我想SureViewEvents使用LINQ 循环遍历类,并循环遍历详细信息行(如果有任何填充).

我该怎么做呢?

public class SureViewEvents
{
    public string EventId { get; set; }
    public string GroupId { get; set; }
    public string DateTimeCreated { get; set; }
    public string GroupTitle { get; set; }
    public string EventTitle { get; set; }
    public string SubscriberId { get; set; }
    public bool Closed { get; set; }

    public List<SureViewEventDetails> Details { get; set; }
}

//EventID|EventRecordID|CreatedDate|EventRecordTypeID|Details|Input1|Input2|EventCode|SubscriberID|EventTitle|SerialNo
public class SureViewEventDetails
{
    public string EventId { get; set; }
    public string EventRecordID { get; set; }
    public string CreateDate { get; set; }
    public string EventRecordTypeID { get; set; }
    public string Details { get; set; }
    public string Area { get; set; }
    public string Zone { get; set; }
    public string EventCode { get; set; }
    public string SubscriberID { get; set; }
    public string EventTitle { get; set; }
    public int SerialNo { get; set; }
    public bool Handled { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法检索父级别值,但我不确定如何访问使用此结构填充的详细信息.任何建议表示赞赏!

var activeEvents = (from sve in m_sureViewEvents 
                    select sve).ToList();

lock (m_driverLock)
{
    foreach (var activeEvent in activeEvents)
    {
        if (activeEvent.Closed == false)
        {
            m_fepConnector.HandleAlarms();
            DownloadZipArchive(activeEvent.EventId);
            CloseSureViewEvent(activeEvent.EventId);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

joc*_*oce 5

您可以选择以下所有详细信息SelectMany:

foreach (var details in activeEvents.SelectMany(e => e.Details))
{
    // ... Stuff
}
Run Code Online (Sandbox Code Playgroud)

这将获得所有的SureViewEventDetails所有activeEvents.