2010-06-24 2 views
5

Comment faire pour récupérer Object et son membre à partir de arraylist dans C#.Comment faire pour récupérer l'objet de arraylist dans C#

+0

Si vous êtes habitué à Java, vous pourriez ne pas savoir que ArrayList n'est pas la même qu'en Java. Il y a beaucoup d'autres types de collection dans la liste C# est typesafe par exemple. –

Répondre

15

Vous voulez dire comme ça?

ArrayList list = new ArrayList(); 
YourObject myObject = new YourObject(); 

list.Add(myObject);  

YourObject obj = (YourObject)list[0]; 

à boucle à travers:

foreach(object o in list) 
{ 
    YourObject myObject = (YourObject)o; 
    ....... 
} 

Informations sur ArrayList

2

Voici un exemple de simple ArrayList étant peuplé d'un nouvel objet KeyValuePair. Je retire ensuite l'objet de ArrayList, le renvoie à son type d'origine et accède à la propriété.

var testObject = new KeyValuePair<string, string>("test", "property"); 
var list = new ArrayList(); 
list.Add(testObject); 
var fetch = (KeyValuePair<string, string>)list[0]; 
var endValue = fetch.Value; 
0

Vous pouvez également utiliser des méthodes d'extension:

ArrayList list = new ArrayList(); 
// If all objects in the list are of the same type 
IEnumerable<MyObject> myenumerator = list.Cast<MyObject>(); 
// Only get objects of a certain type, ignoring others 
IEnumerable<MyObject> myenumerator = list.OfType<MyObject>(); 

Ou si vous ne l'utilisez une version plus récente de .Net, vérifier le type d'objet et coulé à l'aide est/comme

list[0] is MyObject; // returns true if it's an MyObject 
list[0] as MyObject; // returns the MyObject if it's a MyObject, or null if it's something else 

Editer: Mais si vous utilisez une nouvelle version de .Net ...

Je vous suggère fortement d'utiliser les collections génériques dans le système

.Collections.Generic
var list = new List<MyObject>(); // The list is constructed to work on types of MyObject 
MyObject obj = list[0]; 
list.Add(new AnotherObject()); // Compilation fail; AnotherObject is not MyObject 
3
object[] anArray = arrayListObject.ToArray(); 
    for(int i = 0; i < anArray.Length; i++) 
     Console.WriteLine((MyType)anArray[i]).PropertyName); 
+0

Je fais cette recommandation simple parce que cet utilisateur a marqué sa question en tant que débutant. Une fois que le PO a compris ArrayList, il peut passer aux génériques et se concentrer uniquement sur l'apprentissage des génériques. –

1

Vous devez utiliser les collections génériques pour cela. Utilisez l'ArrayList générique pour ne pas avoir à lancer l'objet lorsque vous essayez de le sortir du tableau.

+0

Ceci est C#. Pas Java. –

Questions connexes