如何在linq中订购商品类别

时间:2015-11-23 09:25:18

标签: c# asp.net .net linq c#-4.0

我有20条记录

我想根据Priority字段订购记录。

Priority字段有3个值(High, Medium, Low

我想分别按顺序显示High, Medium, Low条记录中的记录。

var groupedRecords = records.GroupBy(x => x.Priority == "High") // confused here...

注意:我希望首先所有高记录,然后中等记录和 atlast 低记录。

2 个答案:

答案 0 :(得分:6)

为什么优先级映射到整数:

  High   -> 1
  Medium -> 2
  Low    -> 3 

所以它可以是这样的:

  var groupedRecords = records.
    OrderBy(x => (x.Priority == "High") 
      ? 1 
      : (x.Priority == "Medium") ? 2 : 3);

答案 1 :(得分:3)

您希望订购列表,因此请使用OrderByOrderByDescending扩展程序。

var orderedRecords = records.OrderByDescending(x => x.Priority == "High").ThenByDescending(x => x.Priority == "Medium");