0
 private void abi3_Click(object sender, EventArgs e)//gonder
    {    
        foreach (var item in ContactResultsData.SelectedItems)
            {
                Contacts cons = new Contacts();
                cons.SearchCompleted += new EventHandler<ContactsSearchEventArgs>                 (Con_SearchCompleted);
                cons.SearchAsync(item.ToString(), FilterKind.DisplayName, null);

            }

  }



 void Con_SearchCompleted(object sender, ContactsSearchEventArgs e)
    {
        foreach (var contact in e.Results)
        {

            if (contact.PhoneNumbers.Count() > 0)
            {

                    textBox1.Text = textBox1.Text + ";" + contact.PhoneNumbers.FirstOrDefault();

            }


        }

我正在使用此代码获取我的联系人的电话号码。我有一个列表视图,所有联系人都在其中。然后我多选并显示姓名和电话。

但例如,我的联系人姓名之一是“亚历克斯”。另一个是“alex de sousa”。当我选择“alex”和“alex de sousa”时,这个程序只会得到alex的号码两次。没有显示 alex de soousa 的电话号码。

我怎么解决这个问题。谢谢

4

1 回答 1

1

要从评论中回答更新的问题,您可以检查联系人是否DisplayName与搜索查询完全匹配。

像这样将查询作为对象的状态传入

cons.SearchAsync(item.ToString(), FilterKind.DisplayName, item.ToString());

然后读取SearchCompleted事件中的状态,看看它是否像这样完全匹配

if (contact.PhoneNumbers.Count() > 0 && String.Equals(contact.DisplayName, e.State.ToString()))
于 2013-07-09T23:13:01.443 回答