Вы могли бы сделать что-то вроде этого.
List<string> listOfStrings = new List<string>() { "foo", "baz", "blah"};
string fileName = @"C:\Temp\demo.txt";
var newlist = (from line in File.ReadAllLines(fileName)
join listItem in listOfStrings
on line equals listItem
select line).ToList();
Редактировать: в качестве заметки, мое решение сокращает использование потокового ридера и пытается найти элементы в другом списке и скорее использует LINQ для объединения элементовсуществующий список строк со строками из данного входного файла.
List.Contains (входные данные), безусловно, хорошо, и если у вас много входных данных для фильтрации, вы можете рассмотреть возможность преобразования списка с возможностью поиска в HashSet.