我一直在寻找并且还没有找到一个正确的答案,所以这里有:
因此,假设我有一个带有Key和Value的SortedList,其中Key将是唯一的,但Value不会保证是唯一的。有了这个,我想让这个列表按值按升序排序。
这可能与比较器有关吗?如果没有办法做到这一点,我可以使用哪种替代数据结构,这样做可以相对快速地完成,而且不需要使用太多内存(并且实现起来相对轻松)?
答案 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);
}