Поэтому, когда я пишу операторы C# linq, мне часто хочется сделать что-то вроде этого:
string name = database.table.Where(t=>t.Field1 == row.Field1 && t.Field2 == row.Field).Select(b=> b.Name).FirstOrDefault().ToString();
Однако, если приведенный выше оператор ничего не возвращает, возникает ошибка, потому что вы не можете использовать .FirstOrDefault() для нулевого значения.
Итак, вместо этого я обычно делаю что-то вроде следующего:
var listOfNames = database.table.Where(t=>t.Field1 == row.Field1 && t.Field2 == row.Field).Select(b=> b.Name).ToList();
if(listOfNames.Count() > 0 ){
string name = listOfNames.FirstOrDefault().ToString();
}
Приведенный выше код кажется очень многословным, и я должен представить, что есть гораздо более чистый способ сделать это, имея дело с потенциальным нулевым возвращаемым значением.
Любое понимание или помощь будут оценены. Спасибо.