Sorry - I gave you the wrong syntax hint. Using the Cast like that doesn't alter anything; it should be:
(I just tried out a similar example and confirmed that it does work).
"So the calling code will have references to IIndividualListViews whether there was an explicit cast or not. Not so?"
No. The UI is entirely generic so it doesn't know about any of your domain code. The UI simply reflects over the objects that it is being given (that's a simplified explanation, but the principle is right). Even if the method signature
returns X, what the viewer will reflect over is the actual .NET type that is returned (which must conform to X, obviously), which in your code was still in fact a List<Individual>. You could verify that by putting in a break-point and examining
the returned object.
If you think about it, that's always true in .NET - even if a method signature returns type Ixxx, the calling code can still test the actual type of the returned object, and even cast it back to that type (not that that would be good practice,