问题标签 [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 投票
3 回答
16527 浏览

c# - IEnumerable到 IEnumerable

所以我有这个:

IEnumerable<IGrouping<UInt64, MyObject>> groupedObjects = myObjectsResults.GroupBy(x => x.Id);

问题是,我如何把这个结果变成一个IEnumerable<List<MyObject>>

这是我所能接受的:

IEnumerable<List<MyObject>> groupedObjects = (myObjectsResults.GroupBy(x => x.Id).SelectMany(group => group).ToList());

这显然是不正确的。有任何想法吗?

0 投票
4 回答
113 浏览

c# - 此代码中两个选择器函数的返回值之间的差异

Students对象具有NameWeight键值对。

在 ToDictionary 方法中,t变量的类型为IEnumerable<IGrouping<K, T>>。那是,IEnumerable<IGrouping<int, Students>>

为什么返回的值Key不同?它们都使用相同的变量。应该是类型。t=>t.Keyt=> t.Select(**x=> x.Key**)tKeyint

该图像是在执行 GroupBy 方法后拍摄的。(它不是完整图像)其中一个Key具有 的值,另一个60具有 和 的值。BobMattAdam

在此处输入图像描述

0 投票
1 回答
150 浏览

linq-to-sql - 按linq to sql中的多个字段分组

我在为LINQto中的分组行列表定义数据类型时遇到问题SQL
我有一个MyDBModel具有 2 个属性 的模型

在控制器中,我尝试将数据放入此属性

我得到错误:

如果结果是按多列分组的列表,数据类型a_Cases应该是什么?或者如何定义List < IGrouping < Tkey, Telement > >结果是否由多个不同类型的字段分组?

0 投票
1 回答
218 浏览

c# - 为什么我不能返回 IEnumerable> 作为 IEnumerable>

我已经使用GroupBy()并制作了IEnumerable<IGrouping<TKey,TValue>>.

我可以对它进行 foreach ,并将每个元素(每个IGrouping<TKey,TValue>)传递给一个接受的方法IEnumerable<TValue>

这不足为奇 -IGrouping<TKey,TValue>实现IEnumerable<TValue>

但是如果我定义了一个接受的方法IEnumerable<IEnumerable<B>>,那么我不能直接传入 的输出GroupBy(),即使它是一个IEnumerable<>并且其中的每个元素都是一个IEnumerable<B>

为什么?

0 投票
2 回答
2235 浏览

c# - 从 C# 中的 IGrouping 获取对象

我需要从 query2 访问可用的酒店对象,在这里我可以使用 y.key 访问 HotelCode 值,但是如何从 query2 访问可用的酒店对象。

我的矩阵模型


我的查询

访问值

0 投票
1 回答
1740 浏览

c# - 自己生成 IGrouping

我有一个我自己的类“Vertrag”(“Contract”)的实例列表,需要对它们进行分组。

一个简单的 GroupBy 正是我需要的:按最后四个字段分组,结果是一个 IEnumerable<IGrouping<...,Vertrag>>。我可以使用这种结果类型,它很容易迭代。
在标记为 ... 的地方没有给出类型定义。所以这似乎是一个匿名类型?

现在我有一个进一步的要求:确保有一个最大值。每组三个元素。开始新的组(仍然是相同的键!),直到全部分配完毕。我在 StackOverflow 中也找到了一个解决方案,LINQ 有点复杂但工作正常。只是返回类型稍微复杂一些。
我更愿意将这个复杂的结构转换回简单的 IGrouping 形式,以便它可以与现有代码一起使用。

我让它几乎可以工作,或者至少简化为一个与简单的 GroupBy 一样易于使用的版本,但并不完全相同。有没有办法自己创建这个匿名类型的 IGrouping,这样就不需要在原始分组之后更改代码?

密钥会不止一次出现相同的情况,这与 GroupBy 的意思完全相反。所以我不确定手工制作的 IGrouping 是否会允许它存在。

这是一个有效的 LINQPad 示例(带有类型定义):

0 投票
2 回答
1962 浏览

vb.net - VB.New 如何使用多个分组迭代 LINQ 组

我花了几个小时浏览这里和网络上的档案,以了解如何迭代具有多个 VB.Net 分组的 IGroup。C# 有很多解决方案,但我真的很难转换为 VB.Net。

这是我正在分组的列表

这是我按列表中的三个属性分组的代码

接下来,我尝试遍历组,但由于组列表中的项目没有类型(即暗淡的组 As SomeType),所以我不知道如何使用它们。

这是我循环遍历组的代码

有人可以让我知道如何使用 VB.NET 迭代具有多个组的 IGoup 吗?

0 投票
1 回答
296 浏览

linq - 如何映射 IGrouping到 IGrouping?

给定一个函数f:ValueA -> ValueB,我如何将 IGrouping 类型映射IGrouping<Key, ValueA>IGrouping<Key, ValueB>

问题实例:

假设你有这种类型:

这个查询:

这会给你一个类型的 seq: IGrouping<Tag, TaggedItem>,但我真的想要一个类型的 seq: IGrouping<Tag, Item>。映射函数为:fun taggedItem -> taggedItem.Item

解决方案

解决方案是避免分组映射,而是在进行分组时使用 groupValBy 进行转换,正如所选答案所指出的那样。如果您坚持,所选答案还显示了如何进行从一种类型的分组到另一种类型的映射。

0 投票
1 回答
11393 浏览

c# - c# 和 LINQ - 将 IGrouping 转换为 List

我编写了以下代码以在对象列表中查找常见对象

https://dotnetfiddle.net/gCgNBf

.........................................

之后,我需要将“查询”转换为“人员”对象列表( List )以实现其他目标。

我尝试使用“ToList()” ......但它说:

“无法将 IGrouping 转换为列表”。

有人可以帮我解决吗?

0 投票
0 回答
382 浏览

c# - 将 ListView 绑定到 IQueryable>

我将 a 绑定ListViewIQueryable<IGrouping<>>使用 Linq-to-SQL 生成的对象,如下所示:

在标记中,我尝试引用对象的Key属性IGrouping<>

<td rowspan="2"><%# Eval("Key.tbl_journal.RefNo") %></td>

但是,我收到错误:

我可以投射数据项并以这种方式显示值,但它似乎很不令人满意。

有谁知道发生了什么?抱怨应该是关于类型对象上缺少属性的问题似乎很奇怪。