Example #1
0
        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);
        }