Я исследовал IEnumerable и IEnumerator. Существует много способов, как сделать класс пригодным для использования в выражении foreach. Но это не отвечает на мой вопрос. Почему EventLogEntryCollection, используемый в цикле foreach, не возвращает EventLogEntry? Но если я изменил var на EventLogEntry, он будет работать так, как я ожидал, используя цикл for.
EventLog eventLog1 = new EventLog
{
Log = myLogName,
Source = "sourcy"
};
EventLogEntryCollection collection = eventLog1.Entries;
eventLog1.Close();
foreach (var v in collection)
{
Console.WriteLine(v.Message); //object does not contain definition for Message
}
for (int i = 0; i < collection.Count; i++)
{
Console.WriteLine("The Message of the EventLog is :"
+ collection[i].Message);
}