using System.Collections.Generic;
public static List<string> Sort(string[] tenors) {
IList<KeyValuePair<string,int>> dictionnary = new List<KeyValuePair<string,int>>();
foreach(var tenor in tenors)
int.TryParse(tenor.Substring(0, tenor.Length-1), out int val);
switch (tenor.Last<char>())
dictionnary.Add(KeyValuePair.Create(tenor, int.Parse(tenor.Substring(0, tenor.Length-1))));
dictionnary.Add(KeyValuePair.Create(tenor, int.Parse(tenor.Substring(0, tenor.Length-1))*7));
dictionnary.Add(KeyValuePair.Create(tenor, int.Parse(tenor.Substring(0, tenor.Length-1))*30));
dictionnary.Add(KeyValuePair.Create(tenor, int.Parse(tenor.Substring(0, tenor.Length-1))*365));
throw new Exception("Format not valid");
return dictionnary.OrderBy(x => x.Value).Select(x => x.Key).ToList();
public static void Main()
var sortedTenors = Sort(tenors);
Console.WriteLine("Initial : [{0}]", string.Join(", ", tenors));
Console.WriteLine("Sorted : [{0}]", string.Join(", ", sortedTenors));