Frage

Ich habe eine Sammlung von Objekten, wie Dim XXX As IEnumerable(Of MyObject) die aufgefüllt wurde.Es ist eine Eigenschaft, die in MyObject, dass ich Sie gruppieren möchten, zum Beispiel MyObject.MyCode.

Der Blick durch die LINQ-Beispiele es ist nicht klar, was die Group XX By INTO - syntax zu tun, und ich kann es nicht verstehen.

Also, was ich bin nach, ist die Fähigkeit der Gruppe, die durch den Wert von MyCode und sehen, wie viele von jedem Wert, den ich haben in XXX.

Ich weiß, ich habe nicht erklärt es gut, aber hoffentlich eine LINQ person, es zu bekommen.

Vielen Dank

Ryan

War es hilfreich?

Lösung

Der folgende C # -Code zeigt, wie dies zu tun (sorry, aber ich bin nicht viel von einer VB.NET Person):

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

Das in Schlüsselwort im Grunde nimmt das Ergebnis der Gruppe durch und legt sie in ein neues Element, das Sie in Ihrem Auswahlteil beziehen.

Andere Tipps

Im Grunde ein "group by" - Betrieb hat zwei Projektionen:

  • Was möchten Sie gruppieren?(Schlüssel)
  • Was wollen Sie der Gruppe enthalten?(Der Wert)

So zum Beispiel, nehmen wir an, wir haben eine Gruppe von Menschen.Sie können Ihren Namen, Ihr Alter, z.B.

  • 18:Bob, Jeff, Dave
  • 21:Jennifer, Matt

etc.

Wenn Sie mit der GroupBy Methode direkt, Sie geben nur noch die Schlüssel-Wahlschalter, in welchem Falle der Wert selector Standardwert "ist der Wert in der Sequenz" (z.B.in unserem Beispiel oben, würde es standardmäßig auf "Gruppe der Person Objekte nach Alter").

Wenn Sie mit query expression syntax, das wird davon abhängen, welche Sprache Sie verwenden.Sie können effektiv ignorieren Sie die "in" - Teil, mit zu beginnen, aber - das ist nur ein Abfrage Fortsetzung;es ist wie wenn man sagt, "ich möchte nicht, dass die anderen Variablen, die ich verwendet habe, die in der Abfrage mehr, nur die Ergebnisse der Gruppierung" (den Sie dann verwenden können, die in der nachfolgenden bits der Abfrage).

Von dem Versand in OrderTable _

Gruppe von Shipment.ShippingZip _

In Total = Sum (Shipment.Cost), Durchschnitt (Shipment.Cost)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top