从LINQ查询结果返回单个属性

以下表达式返回一个联系人 – 与几十个属性的整个联系人。 这很好,但理想情况下,我希望返回只是联系人的id(contact.contactId)属性。 我该怎么做呢?

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

 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; 

如果您想获得符合条件的单个或第一个对象,请使用以下命令:

  var result = Contacts.Where(x => ...) .Select(x => x.ContactID).FirstOrDefault(); 
 var assocOrg = Contacts. Where(x => x.ContactTypeID == 2 && x.OrganizationName == "COMPANY XYZ"). Select(x => x.contactId); 
 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; 
 var result = Contacts.Where(x => ...) .Select(x => x.ContactID).FirstOrDefault();