Delete all files in a directory whose name do not match a line in a file list

I have a directory with 1000+ files. In a text file, I have about 50 filenames, one per line. I’d like to delete all the files in the directory whose filenames don’t correspond with an entry on the list. What’s the best way to do this? I started a shell script, but couldn’t determine the proper command to determine in the filename is on the list. Thanks.