列表上的多个操作

时间:2012-12-21 22:26:55

标签: c#

我有这个列表。我希望根据订单排序的类别有不同的值。有人请告诉我我该怎么办。

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(); 

谢谢

1 个答案:

答案 0 :(得分: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的第一个代码。