问题标签 [igrouping]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 在 IGrouping 上调用自定义 IQueryable 扩展方法
我的代码非常像这样:
还有其他几个地方我计算了几何平均值,所以我想把它放在一个扩展方法中,所以注释后面的行看起来像Value = group.GeometricMean(a => a.Value)
.
如果我在 上编写常规扩展方法
IEnumerable<T>
,实体框架会抱怨它无法将其转换为查询。如果我编写一个在 上操作的方法
IQueryable<T>
,我会被告知group
实际上不是一个IQueryable<T>
,而是一个IGrouping<TKey, T>
.尝试将其称为“
Value = group.AsQueryable().GeometricMean(a => a.Value)
IGroupingArgumentException
类型的表达式不能用于 IQueryable 类型的参数(参数 arg0)”。
在我看来,我必须以某种方式将其IGrouping
转化IQueryable
为我的扩展方法才能工作,但我不知道如何。有一些关于 SO 的问题在该主题附近徘徊,但我发现没有一个问题适用于此。到目前为止,EF 可能根本不支持此功能。
更多信息:用某些功能替换整个Select
身体是行不通的,因为关键是要使几何平均计算可重用 - 其余部分根本不可重用。它需要在 SQL 中完成,因为它被证明太慢而无法获取数据并在 C# 中进行计算。
查看一些IQueryable
扩展方法的来源,似乎扩展方法的主体会构建一些表达式树并将其传递给source.Provider.Execute
. 我想我可能已经管理了那部分,但由于上述问题,我无法正确测试它。
c# - 在 IGrouping 中创建 IGrouping
我有一个List
平的ViewModels
。
其中每个ViewModel
如下。
现在我想按 分组List
,OuterCaption
然后按InnerCaption
。我可以这样分组List
。OuterCaption
并在我View
这样使用它并GroupBy
在我的View
.
但我想在 a 中创建一个IGrouping
而IGrouping
不是在我GroupBy
的. 我确实认为我应该为我的. 我如何使用 my 实现这一点,以便我可以从我的中删除?Linq
View
IReadOnlyList<IGrouping<string, IGrouping<string, ViewModel>>>
View
initialList
Linq
View
c# - IGrouping 避免匿名类型
我想知道如何对避免匿名类型的数据进行分组,因为键可能是一、二……根据客户的选择。
例子:
我们有一堂课
通过选中的列表框,您可以选择参数来分组数据,其中选项为:
- 姓名
- 年龄
- 地点
- 类型
所以我们可能有 1 到 4 个键来对数据进行分组。
我想避免使用 switch case 或多个 if 语句来获取正确的 IGrouping 数据。
我想避免:
c# - 在嵌套的 foreach 循环中跳过属于 GROUP BY 语句的列?
我将数据添加到 SQL 数据库(数千行),聚合列,然后使用处理后的数据来构建发票(每张发票数十行)。
我GROUP BY
三栏:
[Ordrenummer]
是每一行的一个独特的、唯一的数字。我需要按[KjøretøyID]
(车辆)和[LøyvehaverID]
(公司)分组,这意味着每个[LøyvehaverID]
最终都有 2-10 行。但由于[Ordrenummer]
也是其中的一部分GROUP BY
,它们最终每个都有数百个(非聚合行)。
所以,在我的 C# 代码中,我的问题是:[Ordrenummer]
当我嵌套foreach
循环时,有什么方法可以跳过吗?