using (FileStream fileStream = File.Create(ZipFilePath)) // Zip File Path (String Type)
using (ZipOutputStream zipOutputStream = new ZipOutputStream(fileStream))
// following line must be present for KMZ file to work in Google Earth
zipOutputStream.UseZip64 = UseZip64.Off;
// now normally create the zip file as you normally would
// add root KML as first entry
ZipEntry zipEntry = new ZipEntry("doc.kml");
zipOutputStream.PutNextEntry(zipEntry);
//build you binary array from FileSystem or from memory...
zipOutputStream.write(/*binary array*/);
zipOutputStream.CloseEntry();
// next add referenced file entries (e.g. icons, etc.)