Я новичок в использовании lamda expressions
и пытаюсь понять некоторые вещи.
Я создал следующую часть кода, который возвращает путь к файлу журнала.
public static string GetLogFile()
{
var fileTarget = LogManager.Configuration.AllTargets.Where(t=>t.Name == "LogName") as FileTarget;
return fileTarget == null ? string.Empty : fileTarget.FileName.Render(new LogEventInfo { Level = LogLevel.Info });
}
Моя проблема в том, что fileTarget
пусто, когда я использую:
LogManager.Configuration.AllTargets.Where(t=>t.Name == "LogName")
Но если я изменю эту строку кода как
LogManager.Configuration.AllTargets.FirstOrDefault(t=>t.Name == "LogName")
Возвращает правильный путь для моего файла журнала. Может кто-нибудь объяснить мне, если есть существенная разница между Where
и FirstOrDefault
?