FirstOrDefault()
выбирает первый элемент в коллекции (необязательно, который удовлетворяет предикату) или возвращает null
в случае, если он пуст (или ничто не удовлетворяет предикату).Это не будет делать прогнозы для вас.Поэтому, если вы используете его, может быть неудобно получить доступ к полю элемента, так как вы должны включить проверки значений по умолчанию.
Я предлагаю всегда проецировать на желаемое поле (я)сначала перед использованием FirstOrDefault()
, таким образом вы получаете правильное поле без необходимости выполнять проверку.
var cityStateTaxes = templateDS.Tables[cityStateTaxesTable.TableName]
.AsEnumerable()
.Where(row => row.Field<string>(Fields.Description.Name) == taxItemDescription) // filter the rows
.Select(row => row.Field<string>(Fields.SteStateCodeKey.Name)) // project to your field
.FirstOrDefault(); // you now have your property (or the default value)
return cityStateTaxes;