Возврат одного свойства из результата запроса LINQ

Следующее выражение возвращает контакт - весь контакт с десятками свойств. Это прекрасно, но, в идеале, я хотел бы, чтобы возврат был только идентификатором контакта (contact.contactId). Как это сделать?

var assocOrg = Contacts.Where(x => x.ContactTypeID == 2 && x.OrganizationName == "COMPANY XYZ");

Ответ 1

var result = Contacts.Where(x => ...)
                     .Select(x => x.ContactID);

или

var result = from x in Contacts
             where x.ContactTypeID == 2 && x.OrganizationName == "COMPANY XYZ"
             select x.ContactID;

Ответ 2

Если вы хотите получить один или первый объект, соответствующий вашим условиям, используйте это:

  var result = Contacts.Where(x => ...)
   .Select(x => x.ContactID).FirstOrDefault();

Ответ 3

var assocOrg = Contacts.
               Where(x => x.ContactTypeID == 2 && x.OrganizationName == "COMPANY XYZ").
               Select(x => x.contactId);

Ответ 4

var assocOrg = Contacts.Where(x => x.ContactTypeID == 2 && x.OrganizationName == "COMPANY XYZ").Select(x=> x.contactId).FirstOrDefault();

Это даст вам первый ContactId, и следующее вы получите список контактов ContactId

var assocOrg = Contacts.Where(x => x.ContactTypeID == 2 && x.OrganizationName == "COMPANY XYZ").Select(x=> x.contactId);

В стиле Sql, который будет

var assocOrg = from contact in Contacts
               where contact.ContactTypeId == 2 && contact.OrganizationName == "COMPANY XYZ"
               select contact.ContactId;

Ответ 5

var result = Contacts.Where(x => ...)
           .Select(x => x.ContactID).FirstOrDefault();