我有一个数据表,其中一个名为“position”的列以字符串形式出现。我使用DataTable.Select来获取数据行列表。
DataRow[] drTopMenu = dtMenuItems.Select("ParentMenuID is null", "Position asc");
然而,位置是1,2,...,9,10,数据行数组排序为1,10,2,3,...,9。 我怎样才能解决这个问题?有没有办法在过滤/排序之前将“位置”列的数据类型从字符串更改为int?
答案 0 :(得分:1)
不确定效率,这假设位置列始终包含int。
DataRow[] drTopMenu = dtMenuItems
.Select("ParentMenuID is null")
.OrderBy(x => int.Parse((string)x["Position"]))
.ToArray();