C# 按数据表顺序对已排序列表排序

C# 按数据表顺序对已排序列表排序,c#,datatable,sortedlist,C#,Datatable,Sortedlist,我从ordered datatable填充排序列表,但在填充排序列表后,我的顺序发生了变化 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(

我从ordered datatable填充排序列表,但在填充排序列表后,我的顺序发生了变化

     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


如何在已排序列表中保持数据表的顺序使用已排序列表的想法是将添加的元素保持在已排序的顺序中。这意味着,如果数据库中的元素未排序(或排序方式与排序列表排序方式不同),则排序列表中的元素将具有不同的顺序

如果对数据库中的值进行了排序,并且希望从排序列表中获得相同的排序,则可以为元素提供自定义排序方法,在该方法中复制数据库用于其值的比较逻辑。

SortedList类根据您提供的比较函数对元素进行排序,或者,如果未提供,则基于类型的默认比较器。但是,您的排序逻辑取决于不在已排序列表中的数据(您说“我按另一列对查询进行了排序”),因此无法对列表进行排序

List
类保存元素的有序序列;顺序是它们添加的顺序。换句话说,
List
将保持元素的相同顺序。由于您希望元素保留从数据库检索它们的顺序,因此应使用
List

不抱歉,我有我的逻辑,所以我必须使用排序列表


如果您需要使用
SortedList
,那么您必须以一种复杂的方式进行操作,以便您可以引用用于排序数据的列中的值。有几种可能性。但我更倾向于更改对
SortedList
的依赖关系。为什么需要使用
SortedList
?如果您能提供更多的上下文,我们可能会帮助您解决更大的问题。您将其简化为的较小问题似乎过于复杂。

好的,如何从数据表31e、32e、33e、7iIt获取此顺序看起来它们是按字母顺序排列的(3)在数据库中,没有按另一列排序的查询plz可以帮助我吗?您需要复制数据库逻辑。但是,如果数据库值是按顺序排列的,为什么不使用一个简单的旧列表,以与您从数据库中获取值相同的顺序保存这些值呢?