Существует несколько разных возможностей, но я выбрал пары значений для ясности и, возможно, небольшого улучшения производительности.Если количество тестовых элементов было высоким, вы можете сделать testPairs словарем.
var rez = from item in doc.Descendants("result")
let testPairs = item.Elements("test")
.Select(t => Tuple.Create((string)t.Attribute("field"), (string)t)).ToArray()
where
testPairs.Any(t => t.Item1=="aaa" && t.Item2=="value_a") &&
testPairs.Any(t => t.Item1=="bbb" && t.Item2=="value_b")
select item;