Для лучшего дизайна у вас должен быть объект Contact
в дополнение к вашему классу User
, поэтому у каждого пользователя может быть List<Contact>
, как вы описали следующим образом:
public class User
{
public List<Contact> Contacts { get; set; }
public string Email { get; set; }
}
public class Contact
{
public string Name { get; set; }
public string Email { get; set; }
}
Тогда запрос linq, используемый для заполнения класса, может выглядеть следующим образом:
XElement xmlDoc = XElement.Load(@"..\Users.xml");
var users = from x in xmlDoc.Elements()
select new User
{
Email = (string) x.Attribute("Email"),
Contacts = new List<Contact>(
from c in x.Elements()
select new Contact
{
Name = (string) c.Attribute("Name"),
Email = (string) c.Attribute("Email")
}
)
};