0

我有这个列表。我想根据 Order 排序的类别有不同的值。有人可以告诉我该怎么做。

public class Item
    {
        public string URL{ get; set; }
        public string Title { get; set; }
        public string Category { get; set; }        
        public string Order{ get; set; }


    }

    var Test = new List<Items>

    var groups = Test.Select(g => g.category).Distinct(); 

谢谢

4

1 回答 1

1
var groups = Test
    .GroupBy(g => g.Category)
    .Select(g => new
                 {
                     Category = g.Key,
                     Items = g.OrderBy(i => i.Order)
                 })
    .OrderBy(g => g.Category)
    .SelectMany(g => g.Items)
    .ToList();

或者,在这种情况下基本上是一样的:

Test.OrderBy(it => it.Category).ThenBy(it => it.Order)

如果您想要一个组列表,其中包含按顺序排序的该类别中的项目子列表,则可以取出 SelectMany 的第一个代码。

于 2012-12-21T22:32:05.327 回答