LINQ分组而不改变顺序

时间:2017-03-31 09:23:15

标签: c# linq

我有一个对象列表,看起来像这样:

+-------+------+
| Group | Item |
+-------+------+
| A     | A-1  |
| A     | A-2  |
| B     | B-3  |
| B     | B-4  |
| A     | A-5  |
| A     | A-6  |
| B     | B-7  |
+-------+------+

在保持订单的同时,有没有办法用LINQ对这些项目进行分组。上表将产生4组。 AA, BB, AA, B。使用GroupBy函数,我最终只能使用两个组AAAA, BBB

一些示例代码:

@foreach (var group in Model.AllItems.GroupBy(g => g.Group))
{
    <h1>Group</h1>
   foreach (var groupItem in group)
   {
        <h2>@groupItem.Item</h2>
   }
}

上面表格的代码输出为

  • A-1
  • A-2
  • A-5
  • A-6

  • B-3
  • B-4
  • B-7
  

注意,我已更改表格以更好地说明我的问题

我想要的输出是

  • A-1
  • A-2

  • B-3
  • B-4

  • A-5
  • A-6

  • B-7

0 个答案:

没有答案