如何改进这个C#Linq代码?

Nul*_*ead 2 .net linq performance c#-4.0 asp.net-mvc-3

customerInfo.Telephone = contactData.Where(d => d.ContactTypeId == (int)ContactType.Phone).FirstOrDefault() != null 
                    ? contactData.Where(d => d.ContactTypeId == (int)ContactType.Phone).FirstOrDefault().Data 
                    : string.Empty;
Run Code Online (Sandbox Code Playgroud)

contactData是IEnumerator.问题是两次运行相同的查询.如果我使用变量,我可以摆脱它,但是有一个新变量需要维护.
有没有办法让这些代码更具可读性,并且在不使用任何其他自定义库的情况下使其运行更快?

Til*_*lak 5

DefaultIfEmpty

试试以下

customerInfo.Telephone = 
    contactData.Where(d => d.ContactTypeId == (int)ContactType.Phone)
      .DefaultIfEmpty(new Contact {Data = ""})
      .First().Data;
Run Code Online (Sandbox Code Playgroud)