My dirty secret : I don't care what people sayssay, and I do it. .NET Framework is spread with "XxxxCollection" (UIElementCollection for top of my head example).
So what stopstops me to say saying:
team.Players.ByName("Nicolas")
When I find it better than
team.ByName("Nicolas")
Moreover, my PlayerCollection might be used by other class, like "Club" without any code duplication.
club.Players.ByName("Nicolas")
Best practices of yesterday, might not be the one of tomorrow. There is no reason behind most best practicepractices, most are only wide agreement among the community. Instead of asking at the community if it will blame you when you do that ask yourself, what is more readable and maintainable ?
team.Players.ByName("Nicolas")
or
team.ByName("Nicolas")
Really. Do you have any doubt ? Now maybe you need to play with other technical constraintconstraints that prevent you to use List< T >List<T> in your real use case. But don't add a constraint that should not exist. If Microsoft did not documenteddocument the why, then it is surely a "best practice" coming from nowhere.