Você pode usar Começa com dentro de um Algum
listofItems.Where(item=>list.Any(startsWithWord=>item.StartsWith(startsWithWord)))
Você pode visualizar isso como um duplo for
loop, com o segundo for
Rompendo assim que atinge um true
caso
var filteredList = new List<String>();
foreach(var item in listOfItems)
{
foreach(var startsWithWord in list)
{
if(item.StartsWith(startsWithWord))
{
filteredList.Add(item)
break;
}
}
}
return filteredList;