Вы можете использовать Все
Допустим, доступные типы находятся в списках типов, validFooList и invalidFooList
List<string> types = new List<string>
{
"InProgress", "Queued", "Fail", "Success" , "UpToDate"
};
List<string> validFooList = new List<string>
{
"InProgress", "Queued", "Fail", "Success" , "UpToDate"
};
List<string> invalidFooList= new List<string>
{
"InProgress", "Queued", "Fail", "Success" , "UpToDate","dump"
};
теперь используйте All, чтобы определить, все ли элементы впоследовательность удовлетворяет условию
bool f = validFooList.All(f => types.Contains(f));// return true
bool t = invalidFooList.All(f => types.Contains(f)); //return false