Написание функции сделать это было довольно просто:
public XElement ListToXML<T>(List<T> list)
{
var result = new XElement("Data");
var props = typeof(T).GetProperties();
foreach (var item in list)
{
var line = new XElement("Record");
foreach (var prop in props)
{
var value = prop.GetValue(item);
var element = new XElement(prop.Name, value);
line.Add(element);
}
result.Add(line);
}
return result;
}