我希望简化以下代码包含foreach循环以最小化的迭代和/或增加,因为LINQ和集合的性能在每次迭代被创建:foreach循环(与包括LINQ)性能提高
foreach (Contact contact in Contacts) // phone contacts, around 500-1000
{
IEnumerable<ContactEmailAddress> emails = contact.EmailAddresses; // each has multiple emails
foreach (Friend parseUser in parseUsers) // could be many thousands
{
if (emails.Where(e => e.EmailAddress == parseUser.Email).ToList().Count > 0)
{
parseUser.AddContact(contact); // function call
verifiedUsers.Add(parseUser); // add to my new aggregated list
}
}
}
感谢。
'如果(emails.Any(E => e.EmailAddress == parseUser.Email))' – Romoku 2013-04-25 16:20:32
开始'.ToList()计数>由'。任何0'() ' – ken2k 2013-04-25 16:20:39
@Romoku&肯,而那无线肯定会有所帮助,因为它增加了短路,你可以通过完全避免嵌套循环内部的线性搜索来做得更好。 – Servy 2013-04-25 16:22:27