Ok, I did some checking and found the SharpZip library can do what you want.

It's free (GPL license) and it works via Streams. Thus, all you do is specify the target ZIP archive, the file you want from it, and it makes a stream. What you do from that point is up to you. You could then direct it to a streamwriter pointing to a file if you wanted to write the extracted file to disc, or you could just keep it in memory and use it, etc...

Check it out.