2009-11-20 2 views
1

Comment configurer l'indexeur dont la taille augmente dynamiquement? Down, j'ai utilisé le tableau de taille fixe. Si j'utilise List<Employee>, alors il n'y a pas de point d'avoir indexers.so comment puis-je garder le tableau pour se développer dynamiquement?C# Indexeurs de taille dynamique

class Department 
{ 
    private Employee[] employee = new Employee[6]; 

    public Employee this[int arg] 
    { 
     get { return this.employee[arg]; } 
     set { this.employee[arg] = value; } 
    } 
} 

Répondre

4

Il faudrait créer un nouveau tableau si l'indice est plus grand que la taille actuelle et copier le contenu existant dans le nouveau tableau. Array.Resize le fera pour vous. (Notez qu'il ne modifie pas le tableau existant - il vous renvoie un nouveau tableau de la taille spécifiée, contenant les éléments précédents.)

Vous pouvez envisager de redimensionner à un plus grand tableau que vous avez vraiment besoin, juste que vous n'avez pas à redimensionner aussi souvent.

Êtes-vous sûr que ce ne serait pas plus facile d'utiliser un List<T>? Faire ce genre de chose est manuellement plutôt fastidieux quand il est intégré dans le cadre déjà ...

+1

Merci Jon puis je vais aller pour la liste

+0

pouvez-vous s'il vous plaît poster comment vous avez résolu ce problème? Je suis coincé avec le même problème aussi –