2012-05-07 175 views
2

有了這個代碼,我得到了擴展屬性具有特定的顯示名稱聯繫人:過濾擴展屬性

foreach(Contact c in contacts) 
{ 
    // some code... 
    view.PropertySet = new PropertySet(BasePropertySet.IdOnly, properties); 
    filter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, c.DisplayName); 
    items = service.FindItems(folderId, filter, view); 
} 

我想通過DisplayName而是由Contact.Id不能過濾,但我不能找到一種方法來做到這一點。

回答

0

這就是我到底都做了,我沒有找到更好的解決辦法。 我得到所有具有相同名稱的聯繫人並遍歷它們以找到正確的聯繫人。

 foreach (Item item in items.Items) 
     { 
      foreach (var ext in item.ExtendedProperties) 
      { 
       // check if the extended property is from this contact 
       if (c.Id.ChangeKey == item.Id.ChangeKey) 
       { 
        extendedProperties.Add(ext); 
       } 
      } 
     } 
0

要通過Contact.Id使用搜索下面的ItemSchema.Id等給出...

filter = new SearchFilter.IsEqualTo(ItemSchema.Id, c.Id); 
+0

我試過了,但是它引發了一個ArgumentException,消息「Validation failed。Parameter name:searchFilter」 – Thiago