Это зависит от того, на какой версии .NET вы работаете. Если вы можете использовать Linq2Xml, то это легко. Просто создайте XDocument и выберите дочерние узлы в виде списка анонимного типа.
Если вы не можете использовать Linq2Xml, у вас есть несколько других вариантов. Использование DataSet - одно, это может хорошо работать, но это зависит от xml, который вы получаете. Другой вариант - создать класс, описывающий сущность, которую вы будете читать из xml, и вручную проходить через узлы xml. Третий вариант - использовать сериализацию Xml и десериализовать XML в список объектов. Это может работать хорошо, если у вас есть классы, которые настроены для этого.
Самым простым вариантом будет либо создать XDocument, либо создать DataSet, как вы предлагаете.