Вы можете просто динамически добавлять предложения Where следующим образом:
XElement root = XElement.Load(fileName);
IEnumerable<XElement> selectedElements = root.Elements("OrderNum").Elements("ServiceJob");
for(int i = 0; i < combArray.GetLength(0); i++)
{
if(combArray[i].Text != "All")
{
selectedElements = selectedElements.Where(el => el.Element(combArray[i].AccessibleName) == combArray[i].Text);
}
}
var result = selectedElements.ToList();
Каждая итерация цикла for берет предыдущий запрос и добавляет подходящее предложение Where.
Для 'бонусных баллов'Вы можете упростить цикл for, используя Linq:
var comboBoxes = combArray.Where(c => c.Text != "All");
foreach(var comboBox in comboBoxes)
{
selectedElements = selectedElements.Where(el => el.Element(comboBox .AccessibleName) == comboBox .Text);
}