C# 正在以错误顺序添加到已排序列表中的项目

C# 正在以错误顺序添加到已排序列表中的项目,c#,sortedlist,C#,Sortedlist,我正在将一个值列表添加到一个排序列表中。问题是它没有正确地将数据添加到我的排序列表中 public static void newList(List<string> oldList, List<string> headers) { var noHeaders = removeHeaders(oldList, headers); SortedList<string, string> newList = new Sorte

我正在将一个值列表添加到一个排序列表中。问题是它没有正确地将数据添加到我的排序列表中

public static void newList(List<string> oldList, List<string> headers)
    {
        var noHeaders = removeHeaders(oldList, headers);

        SortedList<string, string> newList = new SortedList<string, string>();
        for (int i = 0; i < headers.Count; i++)
        {
            newList.Add(headers[i], "placeholder");
        }

            //foreach (string header in headers)
            //{
            //    newList.Add(header, "placeholder");
            //}
在将相同的数据添加到排序列表中后,当我查看这些数据时,结果如下所示:

[0]Value1
[1]Value2
[2]Value3
[3]Value4
[0]Value2
[1]Value1
[2]Value4
[3]Value3
有谁能解释一下为什么会发生这种情况,这样我就可以解决它了?我到处找了找,但找不到任何有用的东西


感谢

根据,列表中的条目是根据键排序的,而不是根据值排序的;这意味着您观察的顺序取决于
标题中提供的值,并且这些值本身没有排序。

根据,列表中的条目是根据键而不是值排序的;这意味着您观察的顺序取决于
标题中提供的值,并且这些值本身没有排序。

假设您使用的是SortedList,我假设您在SortedList中的键是按字母顺序排列的。如果您不想实现这种排序,那么最好使用字典。您必须向它传递一个比较器方法。它不知道如何把它们排列整齐。请参阅SortedList按键排序,而不是按插入顺序排序。你确定这就是你真正想要的吗?在构建数据结构后,您希望如何使用它?我假设您在SortedList中的键是按字母顺序排列的,因为您使用的是SortedList。如果您不想实现这种排序,那么最好使用字典。您必须向它传递一个比较器方法。它不知道如何把它们排列整齐。请参阅SortedList按键排序,而不是按插入顺序排序。你确定这就是你真正想要的吗?构建数据结构后,您希望如何使用它?