Преобразование столбца datatable / datarow [] в int из строки

У меня есть таблица данных со столбцом под названием «позиция», которая отображается как строки. Я использую DataTable.Select, чтобы получить список строк данных.

DataRow[] drTopMenu = dtMenuItems.Select("ParentMenuID is null", "Position asc");

Однако позиции 1, 2, ..., 9, 10, а массив строк данных отсортирован как 1, 10, 2, 3, ..., 9. Как я могу это исправить? Есть ли способ изменить тип данных столбца «Позиция» со строки на int перед фильтрацией / сортировкой?


person NoBullMan    schedule 11.04.2013    source источник


Ответы (1)


Не уверен в эффективности, и это предполагает, что столбец позиции всегда будет содержать int.

DataRow[] drTopMenu = dtMenuItems
                .Select("ParentMenuID is null")
                .OrderBy(x => int.Parse((string)x["Position"]))
                .ToArray();
person Jason P    schedule 11.04.2013