Вложенные циклы обычно заканчиваются несколькими предложениями from (которые преобразуются компилятором в вызовы SelectMany
):
var remoteAccessLogs = from log in EventLogs.GetEventLogs()
where log.LogDisplayName == "AAA"
from entry in log.Entries
where entry.Source == "BBB"
select entry;
(при условии, что remoteAccessLogs
пуст перед этим вызовоми что вы счастливы, перебирая его напрямую - вы можете позвонить ToList()
, если хотите List<T>
.)
Вот форма записи в виде точек:
var remoteAccessLogs = EventLogs.GetEventLogs()
.Where(log => log.LogDisplayName == "AAA")
.SelectMany(log => log.Entries)
.Where(entry => entry.Source == "BBB");
Или длясписок:
var remoteAccessLogs = EventLogs.GetEventLogs()
.Where(log => log.LogDisplayName == "AAA")
.SelectMany(log => log.Entries)
.Where(entry => entry.Source == "BBB")
.ToList();
Обратите внимание, что я использовал перегруженную строку == для строки, так как мне легче читать, чем вызывать метод Equals
.Либо будет работать, хотя.