Windows Phone 7中的谓词

时间:2013-08-17 15:35:35

标签: windows-phone-7 windows-phone-8 windows-phone windows-phone-7.1

我遇到了这个问题,我有一个WP8应用程序,我想支持WP7,所以我复制/粘贴代码,并注意到:

Predicate<Contact> contactFinder = (Contact p) => { return p.Id == contact.Id; };
MyContactsList.Contacts.Exists(contactFinder) != true

WP7上不存在.Exists()方法,有解决方法吗?或者我将不得不浏览所有元素并检查他们的ID?像:

foreach ( Contact a in MyContactsList.Contacts )
{
    if (a.id!=id)
    enter code here
}

它会挂断系统,因为我有大约1400多个联系人......

1 个答案:

答案 0 :(得分:0)

您可以改用Linq:

Func<Contact, bool> contactFinder = p =>p.Id == contact.Id;
MyContactsList.Contacts.Any(contactFinder)

请确保您已在文件顶部添加了using System.Linq;

另外,关于你的评论:

  

它会挂断系统,因为我有大约1400多个联系人......

它不会改变任何东西。在引擎盖下,Exists方法与foreach循环完全相同。