Como remover caracteres de uma string, exceto aqueles em uma lista

Este é o valor da minha string:

string str = "32 ab d32";

E esta lista é meus caracteres permitidos:

var allowedCharacters = new List<string> { "a", "b", "c", "2", " " };

Eu quero que isso se torne:

str == " 2 ab   2";

Eu gostaria de substituir qualquer caractere que não esteja na lista de caracteres permitidos, com um espaço vazio.

questionAnswers(5)

yourAnswerToTheQuestion