Question

, j'undestand pourquoi il ne IList<T>. Mais pourquoi IList du tout? Il est absurde d'y ajouter, il devrait donc être juste un IEnumerable, ou si vous voulez vraiment un indexeur (pas de raison), utilisez un ReadOnlyCollection.

Était-ce utile?

La solution

Jetez un oeil à NotifyCollectionChangedEventArgs.

Il a des propriétés de NewStartingIndex et OldStartingIndex.

Ainsi, la conception est basée sur les collections indexables, je suppose que cela est pratique pour par exemple Listes déroulantes.

Autres conseils

L'indexation est souhaitable pour la liste des scénarios de virtualisation.

IList est l'interface de collecte simple qui fournit un accès indexé à des éléments. ReadOnlyCollection est une classe de béton et donc beaucoup plus limitant à implementors.

Je pense qu'en cas de INotifyCollectionChanged vous avez souvent besoin d'effectuer une consultation pour les composants par leur nom (puisque les propriétés sont stockées sous forme de chaînes là-bas), il est donc essentiel d'avoir un indexeur qui prend des chaînes (et la structure sous-jacente devrait probablement être quelque chose comme Hashtable).

page MSDN vous pouvez trouver la recommandation suivante:

Si vous avez un scénario avancé et que vous voulez mettre en œuvre votre propre collection, pensez à utiliser IList, qui fournit un non générique collection d'objets qui peuvent être individuellement accessibles par index et offre les meilleures performances.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top