У меня есть XML, для которого я использовал LINQ to XML. Поскольку я хотел захватить некоторые данные элемента/атрибута, я взял их в массив строк. Позже я использовал цикл foreach для вставки этих значений из строкового массива в DataRow; поскольку моей конечной целью является получение DataTable.Результат LINQ в DataRow
Ниже мой код
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.Add("col_1");
dt.Columns.Add("col_2");
dt.Columns.Add("col_3");
string[] arr = new string[3];
var myData = from n in doc.Descendants("product")
select new string[]{
arr[0] = n.Attribute("name").Value,
arr[1] = n.Attribute("prodid").Value,
arr[2] = n.Attribute("price").Value
};
foreach (var item in myData)
{
dt.Rows.Add(item[0],item[1],item[2]);
}
ли можно комбинировать эти и непосредственно получить результат, как DataTable из запросов LINQ вместо использования Еогеаспа?
Вместо select new string[]
можно использовать что-то вроде select new DataTable
или экземпляр DataTable
?
Я понимаю, что моя структура таблицы должна быть исправлена.
Update
Благодаря @CodingDawg & @Rahul Сингх, сейчас я хотел бы знать, лучший подход между этими двумя.
Я буду проверять наличие данных для сравнения.
Но из вашего опыта, который лучше рассмотреть большие данные (10000 элементов => 10000 строк)?
Вы пробовали загрузки XML в DataSet? Из этого вы должны получить доступный DataTable. – tinstaafl
@tinstaafl - я не могу загрузить XML непосредственно в DataSet, поскольку есть некоторые шаги. Кроме того, хотелось проверить, возможно ли это выше. – A3006