2010-02-16 8 views
2

Jusqu'à présent, je n'ai pas essayé d'utiliser une clause foreach dans une liste générique. L'erreur de compilation que je reçois est:Problème lors de l'utilisation de 'foreach' avec une liste générique

foreach ne peut pas fonctionner sur des variables de type « DMS.OrderNodeList » parce que « DMS.OrderNodeList » ne contient pas de définition publique pour « GetEnumerator »

Toutes les suggestions ce qu'il faut faire ?

Merci,

+1

OrderNodeList ne semble implémenter aucune des interfaces énumérables? IEnumerable, IList, IList etc. Donc, ce n'est * pas * une liste générique - en ce qui concerne .NET, ce n'est pas une liste du tout. En ce qui concerne "Toutes les suggestions que faire ensuite" - oui, lisez les listes et les génériques dans .NET. Plus précisément, prenez le temps d'en apprendre davantage sur IEnumerable et IEnumerable et ce qu'ils signifient. – bzlm

+5

Google ne parvient pas à trouver * n'importe quoi * dans "DMS.OrderNodeList". Comment est-ce défini? –

+0

konrad. agréable. subtil. +1 –

Répondre

1

Vous devez implémenter l'interface IEnumerable dans votre collection personnalisée (il n'est pas une liste générique).

+0

S'il expose IEnumerable un .ToList(). ForEach() serait une option .... Je pense que vous voulez dire qu'il doit implémenter explicitement IEnumerable <>, non? –

+0

@Sky L'ironie étant que l'interface IEnumerable n'a pas réellement ForEach() en tant que membre. Hélas, la publication originale utilise le mot "générique" de manière vague, donc nous ne savons pas si la liste doit être générique (IEnumerable ) ou si elle est "générique" en ce sens qu'elle contient misc. des choses. S'il a juste besoin de ForEach(), alors IEnumerable est ce dont il a besoin, IEnumerable ne force pas une implémentation. – bakasan

+0

Je vous entends. Devinez nous devrons attendre la version bêta de DMS.OrderNodeList pour le savoir. –

3

Dites à votre OrderNodeList classe d'étendre Collection<OrderNode>, vous obtiendrez ce recenseur en pour vous (et probablement une grande partie de la logique que vous avez créé manuellement pour gérer la collection sera maintenant mis en œuvre pour vous.)

Cela suppose que votre OrderNodeList contient une collection d'objets OrderNode.

+0

Collection de listes, êtes-vous sûr? Ne devrait-il pas être prolongé Collection

+0

Argh bien sûr! –

Questions connexes