Bonjour,

Je vous sollicite concernant un problème de lenteur dans une fonction.

Pour vous mettre dans le contexte, cette fonction est implémentée dans un AddIn Outlook. Elle est chargée de vérifier la présence d'une tâche dans la liste des tâches.

La voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 public int VérifierPrésenceTache(object Item)
        {
 
            _listeTâches.Clear();
            List<TaskItem> tacheItems = _taskBox.Items.OfType<TaskItem>().ToList();
            Regex regex = new Regex(@"^[A-Z][0-9]{6}$");
 
 
            if (Item is TaskItem)
            {
                if (regex.IsMatch(((TaskItem)Item).Subject.Substring(0, 7)) || ((TaskItem)Item).Subject.Length < 7)
                {
                    return 999;
                }
 
                _listeTâches = tacheItems.FindAll(t => t.Subject.ToUpper().Contains(((TaskItem)Item).Subject.ToUpper()));
 
            }
            else if (Item is AppointmentItem)
            {
                _listeTâches = tacheItems.FindAll(t => t.Subject.ToUpper().Contains(((AppointmentItem)Item).Subject.ToUpper()) || ((AppointmentItem)Item).Subject.ToUpper().Contains(t.Subject.ToUpper()));
 
            }
 
            return _listeTâches.Count;
        }
Elle met plusieurs seconde à s'executer. La majeur partie de ce temps est utiliser par la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
List<TaskItem> tacheItems = _taskBox.Items.OfType<TaskItem>().ToList();
Je ne vois pas comment faire pour réduire ce temps. Si l'un d'entre vous à une idée.

Je vous remercie pour le temps passé sur mon post.