Abdalla Ben Omran Ответов: 2

Как я могу использовать LINQ orderby по убыванию в запросе ?


Это может быть простой вопрос но с моим кодом здесь я не могу использовать orderby desc и это моя проблема

я буду рад получить объяснение, которое всегда помогает мне

посмотрите на то, что я пробовал :

Что я уже пробовал:

public static void GetDruckerNameAndAnzahl (List<Queue> input)
       {
           var model =
           from print in input
           where print.LastStatus == "Printed"
           group print by print.PrinterName into PrintGroupPrinted
           select new
           {
               PrinterName = PrintGroupPrinted.Key,
               TotalCount = PrintGroupPrinted.Count(),

           };

           foreach (var item in model)
           {
               Console.WriteLine($"{item.PrinterName}:{item.TotalCount}");
           }


       }

JayantaChatterjee

По какому свойству вы хотите сделать заказ по desc в вашем списке объектов?

2 Ответов

Рейтинг:
5

JayantaChatterjee

В LINQ:-

public static void GetDruckerNameAndAnzahl (List<Queue> input)
       {
           var model =
           from print in input
           where print.LastStatus == "Printed"
           group print by print.PrinterName into PrintGroupPrinted
orderby PrintGroupPrinted.Count() descending
           select new
           {
               PrinterName = PrintGroupPrinted.Key,
               TotalCount = PrintGroupPrinted.Count(),

           };

           foreach (var item in model)
           {
               Console.WriteLine($"{item.PrinterName}:{item.TotalCount}");
           }


       }


Рейтинг:
17

Maciej Los

Проверьте это (лямбда-версия):

public static void GetDruckerNameAndAnzahl (List<Queue> input)
       {
           var model = input
           .Where(print=> print.LastStatus == "Printed")
           .GroupBy(print=> print.PrinterName)
           .OrderByDescending(grp=> grp.Count())
           .Select(grp=> new
           {
               PrinterName = grp.Key,
               TotalCount = grp.Count(),

           })
           .ToList();

           foreach (var item in model)
           {
               Console.WriteLine($"{item.PrinterName}:{item.TotalCount}");
           }


       }


Для получения более подробной информации, пожалуйста, смотрите: Перечислимый.Метод OrderByDescending (System.Linq) | Microsoft Docs[^]

Не-лямбда-версия:
var model =
from print in input
where print.LastStatus == "Printed"
group print by print.PrinterName into PrintGroupPrinted
orderby PrintGroupPrinted.Count() descending
select new {...}


[no name]

да, это работает . благодарю вас

Maciej Los

Всегда пожалуйста.