【发布时间】:2019-06-04 20:55:20
【问题描述】:
我正在尝试根据分组依据的结果进行分组。我需要按“a”列分组 来自dapper查询的结果q,然后我需要根据这个分组的结果进一步分组。我该如何执行此操作或如何访问按值分组的每个“键”及其元素?
第一个 groupby 返回我班级的“GroupedEnumerable”。其中有两个元素(因为 a 列只有两个唯一值,但可以更改),然后每个元素都有一个键,然后是 Result。我需要在每个键的结果中按一些值进一步分组。
var result = q.Groupby(x => x.a);
假设模型/类看起来像这样
public class MyClass
{
public string a { get; set; }
public string b { get; set; }
public string c { get; set; }
public string d { get; set; }
public string e { get; set; }
}
我从一个小巧的查询中得到一个对象列表。
var v = repository.getResult(id);
现在我按 a 分组。
var t= v.Groupby(x => x.a);
现在在结果视图中有多个元素,每个元素都包含原始类的一些属性,例如(a、b、c、d 等)我现在需要对 c 进行分组。
我想我只是想知道这个结果会产生什么样的结果集。我不必使用 linq,如果我知道如何获取内部元素,我可以使用良好的旧循环。
【问题讨论】:
-
请发布整个代码
-
我添加了更多代码。无法发布原件,因为它是机密的
-
请在minimal reproducible example 中显示一些示例数据以及您期望的结果。请注意,您不需要发布您的实际代码(实际上您不应该发布,因为它很可能包含许多不相关的细节);足够的示例代码,以便其他人可以重现您遇到的问题。
-
您是否尝试对关键结果进行条件测试?例如,如果您的结果是 { key1: 1, key2: 5} 您是否尝试运行测试以进一步过滤这些结果?我不确定您要如何分组然后再次分组(只有一个键可以分组),但是您可以使用在组之后放置的另一个 Where 子句过滤结果,如下所示:stackoverflow.com/questions/2078736/… 基本上,您可以在 .Groupby 之后添加额外的 .Where 或 .Select 以根据需要按键或结果计数过滤结果。
-
我希望你想要像 Nested Group by LINQ 这样的东西。