C# 如何根据People Hub中设置的筛选器接收所有联系人?

C# 如何根据People Hub中设置的筛选器接收所有联系人?,c#,windows-phone-7,contacts,C#,Windows Phone 7,Contacts,我在我的人脉中心设置了4个帐户(Windows Live Id、LinkedIn、Twitter和Facebook)。我在“People Hub\filter my contact list”twitter和facebook帐户中取消选中,因此现在我在通讯簿中看不到它们-很好。但当我试图通过以下方式在代码中获取它们时: var contacts = new Microsoft.Phone.UserData.Contacts(); contacts.SearchCompleted += (s, e

我在我的人脉中心设置了4个帐户(Windows Live Id、LinkedIn、TwitterFacebook)。我在“People Hub\filter my contact list”twitterfacebook帐户中取消选中,因此现在我在通讯簿中看不到它们-很好。但当我试图通过以下方式在代码中获取它们时:

var contacts = new Microsoft.Phone.UserData.Contacts();
contacts.SearchCompleted += (s, e) => ...
contacts.SearchAsync(String.Empty, FilterKind.None, null);

我收到了我所有的账户,包括推特脸谱网账户——我该如何防止呢?我找到了属性
联系人。Accounts
但它返回{Windows Live Id,Facebook}

返回的每个联系人也有Accounts属性

您可以使用

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();
}
var allAccounts=Contacts.Accounts;
var interestingAccounts=allAccounts.Where(x=>x.Name!=“Twitter”)//或x.Kind
布尔Myfilter(IEnumerable帐户)
{
return accounts.Intersect(interesting accounts).Any();
}
编辑:

bool Myfilter(IEnumerable账户)
{
return accounts.Intersect(Contacts.accounts.Any();
}

谢谢您的回答,但是联系人。帐户会返回我“Windows Live Id”和“Facebook”,但在People Hub的筛选器中,会选中“Windows Live Id”和“链接入…”。。。(正如我在问题中所写)你仍然可以过滤个人联系人,但我仍然不知道在联系人出现时如何在People Hub的过滤器中接收检查过的帐户。帐户返回我错误的信息(硬编码不是解决方案)抱歉。误读了联系人的内容。帐户属性
bool Myfilter(IEnumerable<Account> accounts)
{
  return accounts.Intersect(Contacts.Accounts).Any();
}