2

我有一个Dim XXX As IEnumerable(Of MyObject)已填充的对象集合。MyObject 中有一个我想要分组的属性,例如 MyObject.MyCode。

查看 LINQ 示例,不清楚Group XX By INTO语法在做什么,我无法理解。

所以我所追求的是能够按 MyCode 的值进行分组,并查看我在 XXX 中拥有的每个值的数量。

我知道我没有很好地解释它,但希望 LINQ 人会明白。

谢谢

瑞安

4

3 回答 3

3

下面的 C# 代码显示了如何做到这一点(对不起,我不是一个 VB.NET 的人):

var myGroups = from p in myObject
               group p by p.MyCode into g
               select new { Category1 = g.Key, Category = g };

into 关键字基本上采用 group by 的结果并将其放入您可以在选择部分中引用的新项目中。

于 2009-09-15T12:16:37.303 回答
2

基本上,“分组依据”操作有两个预测:

  • 你想按什么分组?(钥匙)
  • 你希望组包含什么?(价值)

例如,假设我们有一群人。您可以按年龄对他们的名字进行分组,例如

  • 18:鲍勃、杰夫、戴夫
  • 21:詹妮弗、马特

等等

如果您直接使用GroupBy方法,您只需要指定键选择器,在这种情况下,值选择器默认为“序列中的值”(例如,在我们上面的示例中,它默认为“Person按年龄”)。

如果您使用查询表达式语法,那将取决于您使用的语言。不过,您可以有效地忽略“进入”部分 - 这只是一个查询继续;这就像说,“我不再想要我在查询中使用的任何其他变量,只想要分组的结果”(然后您可以在查询的后续位中使用它)。

于 2009-09-15T12:17:28.923 回答
1

来自订单表中的装运_

按 Shipment.ShippingZip 分组 _

总计 = Sum(Shipment.Cost),平均值(Shipment.Cost)

于 2009-09-15T12:14:29.883 回答