Il existe un projet Open source qui permet de faire cela très facilement (http://www.icsharpcode.net/OpenSource/SharpZipLib/).
La Class FastZip permet de faire cela très simplement:
// Création d'un fichier avec tous les fichiers qui ce trouve dans le répertoire c:\temp
FastZip fastZip = new FastZip();
fastZip.CreateZip(@"c:\temp\out.zip", @"c:\temp\", false, ".txt" );
Il y a également d'autres Class qui permettent de travailler avec un fichier zip de façon détaillé.