如何根据人员中心中设置的筛选器接收所有联系人
本文关键字:联系人 筛选 设置 何根 | 更新日期: 2023-09-27 18:29:06
我在我的人员中心中设置了4个帐户(Windows Live Id、LinkedIn、Twitter和Facebook)。我已在"人民中心''筛选我的联系人列表"推特和脸书帐户中取消选中,所以现在我在通讯簿中看不到它们-很好。但当我试图通过以下方式获得代码中的它们时:
var contacts = new Microsoft.Phone.UserData.Contacts();
contacts.SearchCompleted += (s, e) => ...
contacts.SearchAsync(String.Empty, FilterKind.None, null);
我收到我的所有帐户,包括Twitter和Facebook帐户-我该如何阻止它?我已找到属性contacts.Accounts
,但它返回{Windows Live Id,Facebook}
返回的每个联系人也有一个Accounts属性
http://msdn.microsoft.com/en-us/library/microsoft.phone.userdata.contact.accounts(v=vs.92).aspx
你可以使用过滤你的结果
contacts.SearchCompleted += (s,e) => e.Results.Where(c=>MyFilter(c.Accounts))
请记住,有些联系人可能是来自多个帐户的信息的合并。
var allAccounts = Contacts.Accounts;
var interestingAccounts = allAccounts.Where(x=>x.Name!="Twitter") // or x.Kind
bool Myfilter(IEnumerable<Account> accounts)
{
return accounts.Intersect(interestingAccounts).Any();
}
编辑:
bool Myfilter(IEnumerable<Account> accounts)
{
return accounts.Intersect(Contacts.Accounts).Any();
}