Bonjour,
Est-il possible de créer une collection qui soit un sous-ensemble d'une autre collection sans passer par une boucle?
Bonjour,
Est-il possible de créer une collection qui soit un sous-ensemble d'une autre collection sans passer par une boucle?
N'oubliez pas de cliquer surquand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
Bonsoir Alain,
LINQ permet de faire cela (relativement) facilement et travail directement avec les propriétés des objets contenu dans la collection.
C'est vraiment fascinent à découvrir.
Règles du forum + Comment utiliser Developpez.com =
Découvrez le magazine gratuit de Developpez.com
Si vous développez en .NET, la FAQ, les tutos et l'aide MSDN sont vos amis !!!
Dvp.NET, la librairie .NET open source de Developpez.com
Merci beaucoup.
J'ai commencé à explorer mais je tombe sur un problème.
Dans cet exemple (très simplifié, pas de clause Where) de code
pas de problème pour obtenir SubCollection mais visiblement SubCollection n'est pas du même type que UneCollectionDobjets.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim UneCollectionDobjets As Collection Dim SubCollection = From Col In m_colCollections Select Col UneCollectionDobjets = SubCollection
Comment assigner SubCollection (le résultat du Linq) à UneCollectionDobjet?
N'oubliez pas de cliquer surquand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
si m_colCollections et UneCollectionDobjets on le même type de base
exemple List<obj> et array<obj> la tu peux utiliser juste la fonction Tolist
sinon tu peux sélectionner le résultat et la formate comme tu veux avec exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UneCollectionDobjets = SubCollection.ToList()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim x = From it in SomeCollection Select New Student With { .Name = it.Name }
Si tu aimes ma Réponse pense à cliquer sur
Visiter mon blogEt mes codes sources
- La simulation de navigation dans internet explorer avec Interop.SHDocVw
- Protéger mes données de configuration dans une dll compilée
Bonjour,
J'espérais que tous mes types étaient clairs.
UneCollectionDobjets est, comme son nom l'indique ainsi que sa déclaration, une Collection destinée à recevoir un sous-ensemble de la Collection m_colCollections.
m_colCollections (je sais que le nom peut paraître ambigu mais pas pour moi...) est une Collection d'objets issus d'une Classe (clsCollection).
SubCollection est le résultat renvoyé par Linq et semble ne pas être une Collection mais une List.
Donc ta phrase
me fait croire que tu n'as pas compris mon problème puisque, justement, je constate que le type n'est pas le même.si m_colCollections et UneCollectionDobjets ont le même type de base
Peut-être que je dois changer mes "As Collection" en "As List(Of clsCollection)"...???
Collection serait-il un reliquat de Visual Basic(6) laissé dans VB DOT.NET pour compatibilité?
N'oubliez pas de cliquer surquand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
Je ne connais pas VB, je suppose que Collection est du .NET 1.x., donc non générique. Collection<T> est la version générique (depuis .NET 2.0). Linq renvoie du générique, qui ne peut être assigné à une version non générique.
Tout ça pour dire que tu devrais effectivement essayer avec As List(Of clsCollection) Mais alors ajoute un "ToList" à la fin (ou alors crée ta variable comme un IEnumerable<T>), car Select retourne un IEnumerable<T>
N'oubliez pas de cliquer surquand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
Ce doit être genre :
Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim UneCollectionDobjets As IEnumerable(Of T)
Ou T est le type d'objet qui se trouve dans la collection m_colCollections.
Exemple
Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim UneCollectionDobjets As IEnumerable(Of string)
Grand merci.
J'ai déjà testé le List(Of T) (je viens de comprendre ce que veut dire le T) et ça m'a l'air de mieux se comporter que les Collections.
Pour la suite, je n'ai pas le temps d'approfondir dans l'immédiat. Je m'en suis sorti avec une boucle en attendant mieux.
Dès que j'en ai fini avec l'application en cours, promis je m'y plonge.
N'oubliez pas de cliquer surquand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
Et cela rejoint ce que je t'explique dans ta discussion : Remplacer modules standards par modules de classe
On déclare une variable de type IEnumerable(Of T) dans laquelle on peut mettre n'importe quelle objet qui implémenterait cette interface, donc une bonne partie des collections générique comme List(Of T) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 'Declaration <SerializableAttribute> _ Public Class List(Of T) _ Implements IList(Of T), ICollection(Of T), _ IList, ICollection, IReadOnlyList(Of T), IReadOnlyCollection(Of T), _ IEnumerable(Of T), IEnumerable
Règles du forum + Comment utiliser Developpez.com =
Découvrez le magazine gratuit de Developpez.com
Si vous développez en .NET, la FAQ, les tutos et l'aide MSDN sont vos amis !!!
Dvp.NET, la librairie .NET open source de Developpez.com
Partager