public static IComparer <Worker> SortedBy(SortParametr parametr) { switch (parametr) { case SortParametr.Name: return(new SortWorkersByName()); case SortParametr.Salary: return(new SortWorkersBySalary()); case SortParametr.Age: return(new SortWorkersByAge()); case SortParametr.Position: return(new SortWorkersByPosition()); default: return(null); } }
/// <summary> /// сортировка словаря /// </summary> /// <typeparam name="T">тип сортировочного элемента</typeparam> /// <param name="func">делегат соритровки</param> /// <param name="sortParametr">параметр сортировки</param> /// <returns></returns> public static Dictionary <char, double> DictionaryFerquencySort <T>(Func <KeyValuePair <char, double>, T> func, SortParametr sortParametr) { var sortList = frequency.OrderByDescending(func).Select(d => new { Symbol = d.Key, Frequency = d.Value }); if (sortParametr == SortParametr.Ascending) { sortList.Reverse(); } var sortDict = new Dictionary <char, double>(); foreach (var c in sortList) { sortDict.Add(c.Symbol, c.Frequency); } return(sortDict); }