Tag Selected: understanding generics in c#