using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Common.Helper
{
    public class JsHelper
    {

        /// <summary>
        /// 计算使用最多的数字
        /// </summary>
        /// <param name="list">字符串集合</param>
        /// <param name="number">需要几位</param>
        /// <returns></returns>
        public static IEnumerable<string> UseMax(List<string> list, int number = 3)
        {
            list = list.Where(p => !string.IsNullOrEmpty(p)).ToList();
            var dict = new Dictionary<string, int>();
            var group = list.GroupBy(p => p).ToList();
            group.ForEach(p =>
            {
                dict.Add(p.Key, list.Where(q => q == p.Key).Count());
            });

            var dictOrder = dict.OrderByDescending(p => p.Value);
            if (list.Count > 0)
            {
                number = dictOrder.Count() > number ? number : dictOrder.Count();
                var i = 1;
                foreach (var item in dictOrder)
                {
                    if (i <= number)
                        yield return item.Key;
                    i++;
                }
            }

        }

        /// <summary>
        /// 计算使用最多的数字
        /// </summary>
        /// <param name="list">字符串集合</param>
        /// <param name="number">需要几位</param>
        /// <returns></returns>
        public static string UseMaxString(List<string> list, int number = 3)
        {
            return UseMax(list, number).Join();
        }
    }
}