【发布时间】:2016-01-02 06:11:29
【问题描述】:
我在 C# 中有一个 IList,要根据数字按顺序排序。问题在于大于 10 的数字(例如:{11,12,13})。它们在小于 10 的数字之前排序(例如:{6,7,8}),因此在排序结束时,我得到第一个位置为 11 的模型,最后一个位置为 6 或 7 的其他模型。
我确实将此订单号作为字符串传递,我不确定这是问题所在还是我写错了代码。有什么建议吗?
代码:
IList<TestGrid> myList = new List<TestGrid>();
foreach (DataRow row in Browse.GridNodes.Rows)
{
TestGrid model = new TestGrid();
model.Name = row["Name"].ToString();
model.Type = row["Type"].ToString();
model.NodeId = row["NodeId"].ToString();
model.ActivOrderNo = ReadAttribute(row["NodeId"].ToString()+".CONFIG.OrderNumber", 13);
myList.Add(model);
}
IList<TestGrid> sortedList = myList.OrderBy(r => r.ActivOrderNo).ToList();
【问题讨论】:
-
这是什么意思?
List<TestGrid> sortedList = myList.OrderBy(r => int.Parse(r.ActivOrderNo.Replace(".CONFIG.OrderNumber", ""))).ToList(); -
No ".CONFIG:OrderNumber" 部分只是用于从数据库中获取数据的方法中,然后我想根据它们的顺序对其进行排序