我从有序的数据表填充已排序的列表,但在填写排序列表后我的订单更改
for (int i = 0; i < d.Rows.Count; i++)
{
int EmpID = Convert.ToInt32(d.Rows[i]["Fd_Emp"].ToString().Trim());
string type=d.Rows[i]["Fd_Type"].ToString().Trim();
emp.Add(EmpID, type);
}
我的数据表顺序是31e,32e,33e,7i
我的分类列表顺序变为7i,31e,32e,33e
如何在我的排序列表中保存我的数据表顺序
答案 0 :(得分:1)
使用排序列表的想法是它将添加的元素保持在排序顺序中。这意味着如果数据库中的元素没有排序(或者没有按排序列表排序的方式排序),排序列表中的元素将具有不同的顺序
如果数据库中的值已排序,并且您希望从排序列表中获得相同的排序,则可以为元素提供自定义排序方法,在该方法中复制数据库用于其值的比较逻辑。
答案 1 :(得分:0)
SortedList<T>
类根据您提供的比较函数对元素进行排序,或者,如果您不提供元素,则根据类型的默认比较器对元素进行排序。但是,您的排序逻辑依赖于不在排序列表中的数据(您说“我按其他列排序了查询。”因此您无法对列表进行排序。
List<T>
类包含有序的元素序列;订单是添加订单的顺序。换句话说,List<T>
将使元素保持相同的顺序。由于您希望元素保留从数据库中检索它们的顺序,因此您应该使用List<T>
。
没有抱歉,但我有我的逻辑,所以我必须使用排序列表
如果您需要使用SortedList<T>
,则必须以复杂的方式执行此操作,以便您可以参考用于订购数据的列中的值。有一些可能性。但我更倾向于改变对SortedList<T>
的依赖。 为什么需要使用SortedList<T>
?如果您可以提供更多背景信息,我们可以帮助您解决更大的问题。你把它减少的小问题似乎过于复杂。