customerInfo.Telephone = contactData.Where(d => d.ContactTypeId == (int)ContactType.Phone).FirstOrDefault() != null
? contactData.Where(d => d.ContactTypeId == (int)ContactType.Phone).FirstOrDefault().Data
: string.Empty;
contactData
是IEnumerator。问题是两次运行相同的查询。如果我使用变量,我可以摆脱它,但是有一个新变量需要维护
有没有办法让这些代码更具可读性,并且在不使用任何其他自定义库的情况下使其运行更快?
答案 0 :(得分:5)
尝试以下
customerInfo.Telephone =
contactData.Where(d => d.ContactTypeId == (int)ContactType.Phone)
.DefaultIfEmpty(new Contact {Data = ""})
.First().Data;
答案 1 :(得分:1)
你可以这样做:
customerInfo.Telephone =
contactData.Where(d => d.ContactTypeId == (int)ContactType.Phone)
.Select(d => d.Data)
.FirstOrDefault() ?? string.Empty;
答案 2 :(得分:0)
我会使用临时变量来防止多次枚举:
var match = contactData.FirstOrDefault(d => d.ContactTypeId == (int)ContactType.Phone);
customerInfo.Telephone = match == null ? string.Empty : match.Data;