2010-03-18 5 views
6

Im en utilisant le framework .NET 1.1 et Im espérant que quelqu'un pourrait me aider à mettre en un tableau dynamique d'objets?Dois-je utiliser un ArrayList ou IList

Un exemple édulcorée de l'objet que je souhaite utiliser est ci-dessous.

Class CarObj 
{ 
    public string CarName; 
    public string CarYear; 
} 

Dois-je utiliser un ArrayList ou pensez-vous qu'il serait préférable de faire une classe carliste pour implémenter une interface IList? Y a-t-il un avantage de performance pour l'un sur l'autre?

+3

Pourquoi une entreprise prendre la décision de rester sur la plate-forme 1.1 quand nous sommes à l'aube de 4,0? –

Répondre

4

Hériter CollectionBase à la place; cela enveloppe IList et vous permet de fournir votre propre implémentation des méthodes typées dont vous avez besoin. C'est ce qu'il est conçu pour :)

+0

WOW! Les gars U sont rapides! THX – Ryan

1

Si vous utilisez 1.1 et ont besoin d'une collection de style de tableau dynamique alors ArrayList est le meilleur choix pour vous faire bouger.

Je déteste tout le casting qui vient avec l'utilisation de ArrayList et je ne blâme pas les gens pour écrire des collections personnalisées qui ont fortement implémenté des membres dans 1.1. Cependant, si vous suivez cette route, je suggérerais d'utiliser un générateur personnalisé ou un codage manuel fastidieux. Il en existe plusieurs qui peuvent rapidement être trouvé via google

Ce lien par exemple va effectivement générer le code pour vous sur le site et il peut être simplement copier et coller dans votre projet.

+0

C'est cool, merci pour le lien. – Ryan

0

Le principal avantage de mettre en œuvre votre propre classe de collection (puisque vous êtes coincé dans 1.1) est de type sécurité; Lorsque vous savez à coup sûr que votre collection ne peut contenir que des instances CarObj, il n'est pas nécessaire de lancer le type ou de s'inquiéter des erreurs de conversion. En interne, cette classe de collection peut utiliser un ArrayList pour stocker les objets.