gpt4 book ai didi

c# - Group 之后的 OrderBy?

转载 作者:行者123 更新时间:2023-11-30 22:45:29 25 4
gpt4 key购买 nike

好的,所以我有一张 table

Table:
Id
Value

如果我查询我的表并按“值”对结果进行分组,我怎样才能使每个组按字母顺序排列(按“值”=“a”分组的组将排在按“”分组的组之前值”=“z”)。

My current query looks something like this:
var Result =
from a in DB.Table
orderby a.Value
group by a.Value into b
select new {Groupz = b};

最佳答案

其他答案是对初始列表进行排序,然后对组进行排序。这是可行的,因为 GroupBy 保留了初始集合的顺序。但是,如果您想实际对组进行排序(这是最初的问题),您需要先创建组,然后按 IGrouping 对象的键排序:

    [Test]
public void Test()
{
var collection = new List<Fake>()
{
new Fake {Value = "c"},
new Fake {Value = "b"},
new Fake {Value = "a"},
new Fake {Value = "a"}
};
var result =
collection.GroupBy(a => a.Value, a => a).OrderBy(b => b.Key).ToList();

foreach(var group in result)
{
Console.WriteLine(group.Key);
}
}

private class Fake
{
public string Value { get; set; }
}

使用查询语法,这看起来像这样:

        var result =
from a in collection
group a by a.Value
into b
orderby b.Key
select b;

同样,我们在 order by 操作之前进行 group by 操作,实际上是在组上执行排序,而不是在原始列表元素上。

关于c# - Group 之后的 OrderBy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3047674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com