Я бы написал свой метод расширения для создания нового IEnumerable, а не массива:
public static IEnumerable<string> XmlSerializeAll<T>(this IEnumerable<T> input)
{
foreach (T item in input)
{
yield return item.ToXmlString();
}
}
Вы можете легко получить нужный массив, используя
var myArray = myEnumerable.XmlSerializeAll().ToArray();
Таким образом, вы добавляете некоторую гибкость. Вместо этого можно создать список или использовать бесконечно длинные перечисления, если вам нравится:)