Bonjour,

Le problème :
Sur un projet de gestion d'une base de Pedigree de chevaux, j'ai des délais de construction de ComboBox trop importants à chaque ajout d'un nouveau pedigree.

Le projet:
La base est constituée d'environ 10.000 Pedigree et les informations pour chaque pedigree etant peu importante (string de 20 c max , 4 integer, 1 short, 5 Boolean) tout se passe en mémoire, la sauvegarde / chargement étant effectuée par sérialisation.

La base des Pedigree est constituée par un SortedList d'une structure :
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
 
    ' STRUCTURE pedigree
    '
    Private _code As Integer                    
    Private _nom As String                      
    Private _année As UShort                  
    Private _sexeIsMale As Boolean          
    Private _isEtalon As Boolean              
    Private _isGagnant As Boolean           
    Private _isChefDeRace As Boolean      
    Private _isEtude As Boolean              
    Private _père As Integer                  
    Private _mère As Integer                 
    Private _use As Integer                   
 
    Public Property code() As Integer
        Get
            Return _code
        End Get
        Set(ByVal value As Integer)
            _code = value
        End Set
    End Property
etc...
Inherits SortedList(Of String, Pedigree)
LEs test de vitesse que j'ai réalisé avec 12000 Pedigree sont les suivants :
Deserialisation (load) Durée : 0,42 secondes
constitution d'un index par Numero et par Nom (pour le combo) Durée : 0,06 secondes
affectation datasource combo pedigree Durée : 1,66 secondes

A chaque ajout d'un nouveau pedigree dans la base, je dois reconstruire les Datasource de 3 combos soit environ 3 x 1,66 secondes = 5 secondes ce qui est beaucoup trop long.
Ces combos permettent juste d'obtenir la liste des pedigree par nom

Je suis obligé de réaffecter les .datasource aux combos car je ne peux effectuer un insert sur l'arraylist du combo à chaque création de pedigree.

1) L'affectation d'une source autre que ArrayList (qui permettrait un .insert) a un combo est-elle possible simplement ?
2) Pour obtenir le comportement d'un combo avec une source de données sur laquelle je puisse effectuer des insert et aussi appliquer des filtres (du style uniquement les Males), de quoi dois-je partir ?
3) Serait-il plus simple d'implémenter un combo "maison" de manière à utiliser la source que l'on veut ?

Merci de me donner votre avis et les solutions que vous choisiriez pour résoudre mon "PETIT" problème.

MS Visual Basic 2005 Express - FrameWork 2.0 - XP SP2 - Pentium 4 2.93 Ghz - 896 Mo Ram

EDIT : QUESTION SUBSIDIAIRE : Vous semble t'il normal que créer 2 arrayList (index par Numero et par Nom ... ) demande 0,06 secondes et que pour affecter un de ces 2 array au comboBox il faut 1,66 secondes !