2010-12-07 64 views
0

Je déclare une IList:Comment puis-je mettre la découverte sur les propriétés d'un objet IList et mise à jour sur les objets qui se trouvent

Dim OrigVendors as IList 
OrigVendors = new List(of IVendors) 

Je POPULATE la variable OrigVendors et ce que je veux faire est de trouver toutes les objets qui ont l'ID que je cherche. Ensuite, j'ai besoin de mettre à jour une propriété sur cet objet pour seulement ceux trouvés. Est-ce possible avec un IList ou dois-je utiliser un autre type de collection? J'utilise VB.net

Répondre

1

En supposant que vous faites une distinction entre le non-Generic version of IList et le List class générique, vous pouvez filtrer sur des propriétés spécifiques.

Comme l'interface IList ne dérive pas du Generic IEnumerable (mais plutôt le non-Generic version of IEnumerable), vous ne pouvez pas utiliser la plupart des méthodes d'extension sur le Enumerable class in the System.Linq namespace.

Cependant, si vous savez que la mise en œuvre IList non générique contient seulement implémentations de IVendors, alors ce que vous pouvez faire est d'appeler la Cast extension method on IEnumerable comme ceci:

Dim typedVendors = OrigVendors.Cast(of IVendors) 

Une fois que vous avez le typé IEnumerable (de IVendors), vous pouvez utiliser l'une des méthodes LINQ que vous choisissez pour filtrer la séquence et effectuer des opérations sur les éléments.