如何通过LINQ选择队列中最常出现的值?

时间:2011-10-11 02:17:47

标签: c# linq

我有一个队列。如何选择最常出现的值并通过LINQ表达式将其分配给int?

int number = (from i in queue
             group // ?
             select i).First();

2 个答案:

答案 0 :(得分:12)

int number = queue.GroupBy( x => x)
                  .OrderByDescending( g => g.Count())
                  .Select( g => g.Key)
                  .First();

答案 1 :(得分:4)

        Queue<int> queue = new Queue<int>();

        queue.Enqueue(1);
        queue.Enqueue(2);
        queue.Enqueue(3);
        queue.Enqueue(4);
        queue.Enqueue(5);
        queue.Enqueue(2);
        queue.Enqueue(3);
        queue.Enqueue(2);
        queue.Enqueue(4);

        int number =(from c in queue
                     group c by c into g
                     orderby g.Count() descending
                     select g.Key).FirstOrDefault();

我希望它可以帮到你。