问题标签 [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.

0 投票
0 回答
92 浏览

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. 我想我可能已经管理了那部分,但由于上述问题,我无法正确测试它。

0 投票
1 回答
32 浏览

c# - 在 IGrouping 中创建 IGrouping

我有一个List平的ViewModels

其中每个ViewModel如下。

现在我想按 分组ListOuterCaption然后按InnerCaption。我可以这样分组ListOuterCaption

并在我View这样使用它并GroupBy在我的View.

但我想在 a 中创建一个IGroupingIGrouping不是在我GroupBy的. 我确实认为我应该为我的. 我如何使用 my 实现这一点,以便我可以从我的中删除?LinqViewIReadOnlyList<IGrouping<string, IGrouping<string, ViewModel>>>ViewinitialListLinqView

这是示例代码:https ://dotnetfiddle.net/hP2kxO

0 投票
1 回答
42 浏览

c# - 如何从对象中的键和值匹配的 IGrouping 中获取值

我有一个包含三列的数据库表:CodeType、Code、Name

我将这些值保存在内存中,如果您愿意将这些值分配给 Lookup,那是一个穷人的缓存。

我从数据库中提取值并将它们分配给查找。

我相信这部分到这里是有效的。

我的问题是我无法获取特定 CodeType 和 Code 的名称。例如,我传入“DamageQuadrant”和“P9”,我需要 Name 值。

表视图

这是我目前拥有的,但是 VS 对我咆哮着说没有 CodeType 的定义。

我尝试了各种其他方法,包括在 Linq 代码中使用 && 条件。这看起来很容易,但到目前为止还不是。

0 投票
2 回答
63 浏览

c# - IGrouping 避免匿名类型

我想知道如何对避免匿名类型的数据进行分组,因为键可能是一、二……根据客户的选择。

例子:

我们有一堂课

通过选中的列表框,您可以选择参数来分组数据,其中选项为:

  • 姓名
  • 年龄
  • 地点
  • 类型

所以我们可能有 1 到 4 个键来对数据进行分组。

我想避免使用 switch case 或多个 if 语句来获取正确的 IGrouping 数据。

我想避免:

0 投票
0 回答
29 浏览

c# - 在嵌套的 foreach 循环中跳过属于 GROUP BY 语句的列?

我将数据添加到 SQL 数据库(数千行),聚合列,然后使用处理后的数据来构建发票(每张发票数十行)。

GROUP BY三栏:

[Ordrenummer]是每一行的一个独特的、唯一的数字。我需要按[KjøretøyID](车辆)和[LøyvehaverID](公司)分组,这意味着每个[LøyvehaverID]最终都有 2-10 行。但由于[Ordrenummer]也是其中的一部分GROUP BY,它们最终每个都有数百个(非聚合行)。

所以,在我的 C# 代码中,我的问题是:[Ordrenummer]当我嵌套foreach循环时,有什么方法可以跳过吗?