Objets C# dans arrayLists
Je travaille avec ArrayList
en C# et je me demande comment je peux ajouter des objets à un ArrayList
puis de récupérer les valeurs d'elle?
En bref, comment puis-je ajouter, de supprimer, d'éditer et de lire à partir d'une ArrayList
contenant des objets de classes?
Reconnaissants pour toute aide!
- al vous devez faire est de lancer correctement sur le code de la consommation
Vous devez vous connecter pour publier un commentaire.
Sauf si vous êtes dans une situation où vous doit utilisation .NET 1.0/1.1, ou besoin d'interagir avec le code existant qui utilise
ArrayList
- vous devriez vraiment éviter d'utiliserArrayLists
dans le nouveau code. Utiliser le générique type de collectionList<>
à la place.Les opérations d'ajouter, de supprimer et de remplacer un élément dans
List<T>
sont assez simples.Disons que vous avez quelques hypothétique type
Animal
, dont les instances que vous allez stocker dans une liste:Les interfaces publiques pour
List<T>
etArrayList
sont en fait très similaires. La principale différence, c'est que ArrayList ne peut stocker que deobject
références puisqu'il a été mis en œuvre avant .NET pris en charge génériques.Dans l'exemple ci-dessus, vous DOIT fonte des types comme
int
(qui sont des types de valeur dans .NET) à l'objet. Il en résulte une boxe de conversion - qui copie l'int type de la valeur à un nouvel emplacement sur le tas, et la passe à ArrayList. Boxe conversions, sont l'un des inconvénients de l'utilisation deArrayList
-List<T>
évite cela en vertu d'être une classe générique. Un autre problème est queArrayList
ne vous empêche pas de mélange de différents types dans la liste. Par exemple:sont tous les deux autorisés. Cependant, lors de l'accès aux éléments d'un
ArrayList
, vous devez savoir quel type que vous essayez de récupérer. Cela rendArrayList
plus fragile qu'un type de collection, parce que l'appelant doit écrire du code, soit de se protéger de l'arbitraire des types d'être stockée dans laArrayList
, ou bien utiliser la réflexion de l'exécution et des vérifications de type pour convertir les valeurs stockées.List<T>
résout ces deux problèmes en permettant à l' compilateur afin de vérifier que seuls les types appropriés sont stockés dans la collection (ceux qui correspondent au type de paramètreT
dansList<T>
).Il y a beaucoup plus qui pourrait être écrit sur l'interaction avec les collections et, en fait, il y est. Voici un lien pour juste un de beaucoup de grands livres sur le sujet. Mon conseil serait, avant de commencer l'écriture de code .NET/C#, vous devriez prendre le temps de familiarisez-vous avec les concepts de base du langage C# et le type de système - quelle est la référence vs types de valeur. Quelles sont les primitives. Ce sont des génériques. etc. Cela permettra de s'assurer que lorsque vous commencez à écrire le code, le code fait ce que vous avez besoin de faire. C# est un riche et sophistiquée type de système ainsi que d'une vaste bibliothèque de classes du framework. Il est important d'avoir une bonne mise à la terre dans les principaux aspects de la langue avant d'entrer trop profondément dans l'écriture de code. Des exemples comme ceux que je montre ci-dessus ne fera que vous obtenez ce jour - et ils ont déjà introduire de nombreux concepts du langage: les variables, les constructeurs, les génériques, la boxe conversions, etc.
Tout d'abord, il est préférable d'utiliser une Liste, et non pas une liste de tableaux en C#. Par exemple, si vous voulez une liste de chaînes de caractères:
ou
Les méthodes seront similaires, par exemple
vous pouvez faire la même chose que si u travail sur une liste ou d'une collection (n'essayez d'utiliser .ajouter une méthode).
aussi, vous pouvez lire ce lien msdn
im en utilisant une méthode similaire, mais je ne suis pas en mesure de l'utiliser..en donnant quelques erreur de ce type d'objet est un champ ne peut pas l'utiliser comme type..:/im me demandais, j'ai été capable de l'utiliser en java, même avec un objet ArrayList..im sous-estimer il bcz mine objet sur le terrain, mais pourquoi je ne peut pas l'utiliser:(
Donne la liste = new List();