Фактический тип вашего запроса будет IEnumerable . В LINQ есть концепция отложенное выполнение , для того чтобы запрос был фактически выполнен, вам нужно вызвать метод, который будет повторяться по IEnumerable :
string currentLabel = (from s2f in stream2FieldTypesTable
where s2f.s2fID == item.s2fID
&& (s2f.s2fLabel != item.s2fLabel || s2f.s2fIsRequired != item.s2fIsRequired)
select s2f.s2fLabel)
.FirstOrDefault();
Для получения точного одного экземпляра это может быть метод FirstOrDefault () или SignleOrDefault () или просто First () или Single () . Единственное отличие состоит в том, что методы без «OrDefault ()» будут генерировать исключение, если перечисление не будет соответствовать их ожиданиям, а методы с «OrDefault ()» будут просто возвращать ноль.
Редактировать
Разница между Single и First заключается в том, что Single ожидает точный элемент в коллекции и First ожидает как минимум один элемент.