Je veux juste filtrer mes Mails avec la Restreindre méthode comme ceci:Outlook.Items Restreint() le comportement wierd
restriction += "[ReceivedTime] < '" + ((DateTime)time).ToString("yyyy-MM-dd HH:mm") + "'";
var count = oFolder.Items.Restrict(restriction).Count;//Cast<object>().ToList();
for (int i = 0; i < count; i++)
{
var crntReceivedTime = ((OutLook.MailItem)oFolder.Items.Restrict(restriction).Cast<object>().ToList()[i]).ReceivedTime;
if (crntReceivedTime > time)
{
string t = "";
}
}
En théorie, la ligne string t = "";
ne devrait jamais être appelé, parce que j'arrêté les éléments de ne jamais avoir entrées dont la valeur de ReceivedTime est supérieure à time
. Le problème est que la ligne est appelée, ce qui signifie que la collection d'éléments restreints contient des entrées qu'elle ne doit pas contenir.
Ai-je fait quelque chose de mal ou est le Restrict()
-method juste échouer?
Pour votre premier point: C'était uniquement à des fins de test (l'ensemble pour la boucle), c'est pourquoi im utilisant le chemin avec le moins de code. Deuxième point: C'est la restriction complète, je prévois d'ajouter plus de restrictions, c'est pourquoi je commence par 'restriction =" ";' et que continuer à ajouter plus. Mais pour l'instant, cette première ligne est la restriction entière. –
Alors, quelle était la date de restriction et quelle était la valeur de ReceivedTime qui n'a pas satisfait à la restriction mais a quand même été retournée? –
La date de restriction était 2013-06-11 00:00, le ReceivedTime était 2013-11-11 11:39. –