Vb.net EWS检索最旧的未读电子邮件不工作

Vb.net EWS检索最旧的未读电子邮件不工作,vb.net,exchangewebservices,Vb.net,Exchangewebservices,我需要最后5封未读的电子邮件。我可以收到未读的电子邮件,但无法按收到的日期时间排序。请参阅下面我的代码: Dim iv = New ItemView(5) ' get last 5 emails iv.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Descending) Dim sf As SearchFilter = New SearchFilter.SearchFilterCollection(LogicalOperator

我需要最后5封未读的电子邮件。我可以收到未读的电子邮件,但无法按收到的日期时间排序。请参阅下面我的代码:

Dim iv = New ItemView(5) ' get last 5 emails

iv.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Descending)

Dim sf As SearchFilter = New SearchFilter.SearchFilterCollection(LogicalOperator.And,_
    New SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, False))

Dim emails = service.FindItems(WellKnownFolderName.Inbox, sf, iv)
更多信息: 我需要先处理最旧的电子邮件


如果我不使用searchfilter,它会像预期的那样工作,最旧的电子邮件会最先出现。但是如果我使用searchfilter,它会忽略排序顺序。我已经删除了额外的搜索过滤器,因为它们不会造成问题。

以前从未使用过EWS,但我刚刚试用了您的代码,排序似乎按预期进行。默认排序顺序是降序,例如最新的电子邮件将首先返回,因此您描述的结果没有真正意义。还有,当您只有一个SearchFilter时,为什么要使用SearchFilter集合?我添加了更多信息,没有SearchFilter,视图将显示较旧的电子邮件。但searchfilter似乎忽略了我的视图顺序。我的示例中排除了其他搜索筛选器,因为它们不会导致问题。如果您希望首先使用最旧的电子邮件,则您的排序顺序应为升序(例如线性时间),以便未来大于过去。谢谢,升序确实适用于搜索筛选器,让我困惑的是,在没有搜索过滤器的情况下,降序也是一样的。不确定为什么使用搜索筛选器会使排序机制发生逆转。