Jak usunąć znaki z łańcucha, z wyjątkiem znaków na liście

To jest moja wartość ciągu:

string str = "32 ab d32";

Ta lista to moje dozwolone znaki:

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

Chcę, żeby stało się:

str == " 2 ab   2";

Chciałbym zastąpić dowolny znak, który nie znajduje się na liście dozwolonych znaków, pustą przestrzenią.

questionAnswers(5)

yourAnswerToTheQuestion