Cadre de la conception de lignes directrices recommandent l'utilisation de la classe Collection lorsque vous avez besoin de retourner une collection qui est modifiable par l'appelant ou ReadOnlyCollection pour lire uniquement les collections.
La raison de ce qui est préférable à un simple IList est que IList ne pas informer l'appelant si sa lecture seule ou non.
Si vous retournez un IEnumerable<T>
au lieu de cela, certaines opérations peuvent être un peu plus délicat pour l'appelant à effectuer. Aussi, vous ne pourront plus s'en donner à l'appelant la souplesse nécessaire pour modifier la collection, quelque chose que vous pouvez ou ne voulez pas.
Gardez à l'esprit que LINQ contient quelques tours dans sa manche et permettra d'optimiser certains appels en fonction du type qu'elles sont exécutées sur. Ainsi, par exemple, si vous effectuez un Comte et de la collection sous-jacente est une Liste il ne seront PAS marcher à travers tous les éléments.
Personnellement, pour un ORM je serais probablement le bâton avec Collection<T>
que ma valeur de retour.