Вы можете использовать для этого вложенные запросы.
Предполагая, что ваши классы выглядят так (немного упрощается):
public class Domain
{
public string Name;
public List<Group> Groups;
}
public class Group
{
public string GroupId;
}
Вы можете создать представление LINQ to XML за один разнапример:
XElement domains = new XElement("Domains",
from domain in domains
select new XElement("Domain",
new XAttribute("name", domain.Name),
from group in domain.Groups
select new XElement("Group",
new XAttribute("id", group.GroupId))
));
«Хитрость» заключается в том, что если вы передадите IEnumerable в качестве одного из параметров конструктору XElement, конструктор будет перечислять его и добавлять каждый элемент отдельно.