SortedList <int,int =“”>按值排序</int,>

时间:2015-03-08 04:23:07

标签: c# sorting sortedlist

我一直在寻找并且还没有找到一个正确的答案,所以这里有:

因此,假设我有一个带有Key和Value的SortedList,其中Key将是唯一的,但Value不会保证是唯一的。有了这个,我想让这个列表按值按升序排序。

这可能与比较器有关吗?如果没有办法做到这一点,我可以使用哪种替代数据结构,这样做可以相对快速地完成,而且不需要使用太多内存(并且实现起来相对轻松)?

1 个答案:

答案 0 :(得分:1)

这是一个简单的独立示例,可以满足您的需求

     SortedList<int, string> sortedlist = new SortedList<int, string>();
            //add the elements in sortedlist
            sortedlist.Add(1, "Sunday");
            sortedlist.Add(2, "Monday");
            sortedlist.Add(3, "Tuesday");
            sortedlist.Add(4, "Wednesday");
            sortedlist.Add(5, "Thusday");
            sortedlist.Add(6, "Friday");
            sortedlist.Add(7, "Saturday");
            //display the elements of the sortedlist
            Console.WriteLine("The elements in the SortedList are:");
            foreach (KeyValuePair<int, string> pair in sortedlist)
            {
                Console.WriteLine("{0} => {1}", pair.Key, pair.Value);
            }

            var orderByVal = sortedlist.OrderBy(v => v.Value);

            //display the elements of the sortedlist after sorting it with Value's
            Console.WriteLine("The elements in the SortedList after sorting :");
            foreach (KeyValuePair<int, string> pair in orderByVal)
            {
                Console.WriteLine("{0} => {1}", pair.Key, pair.Value);
            }