0

我有一个包含以下记录的列表:

name:apple
category:fruit

name:choysum
category:vegetable

name:chicken
category: poultry

name: lamb
category: meat

...

我需要按以下类别订购此列表:

vegetable
fruit
poultry
meat..

有人可以帮助我如何使用 LINQ。我正在考虑为上述类别创建另一个名为 ordinal 的属性并标记为 1,2,3,4。然后按序号排序。

4

1 回答 1

4

是的,您可以执行以下操作:

var orderedCategories = new List<string> { "fruit", "vegetable", "poulty", "meat" };
var ordered = list.OrderBy(x => orderedCategories.IndexOf(x.Category))
                  .ToList();

如果您有很多类别,您可能想要使用 a Dictionary<string, int>(或者Dictionary<Category, int>如果您有单独的类别类)。

于 2012-08-11T07:00:56.837 回答