Теоретические аспекты дженериков в контексте .NET и практика их использования в реальных проектах. Читать