Sort a Dictionary by Value in C#

The following code snippet sorts a Dictionary by values. 

The code first creates a dictionary and then uses OrderBy method to sort the items.

  1. public void SortDictionary()  
  2. {  
  3.   
  4.     // Create a dictionary with string key and Int16 value pair  
  5.     Dictionary<string, Int16> AuthorList = new Dictionary<string, Int16>();  
  6.     AuthorList.Add("Mahesh Chand", 35);  
  7.     AuthorList.Add("Mike Gold", 25);  
  8.     AuthorList.Add("Praveen Kumar", 29);  
  9.     AuthorList.Add("Raj Beniwal", 21);  
  10.     AuthorList.Add("Dinesh Beniwal", 84);   
  11.   
  12.     // Sorted by Value  
  13.   
  14.     Console.WriteLine("Sorted by Value");  
  15.     Console.WriteLine("=============");  
  16.     foreach (KeyValuePair<string, Int16> author in AuthorList.OrderBy(key => key.Value))  
  17.     {  
  18.         Console.WriteLine("Key: {0}, Value: {1}", author.Key, author.Value);  
  19.     }  
  20. } 
Output