ich eine Klasse wie folgt:Ich verstehe einfach nicht, wie Linq verwenden
Class Scan
Delivered As Boolean
ScanDate As Date
State As String
Facility As String
End Class
ich dann eine Liste erstellen und füllen es mit Scans, was auch immer enthält.
Ich muss die Liste abbauen, um verschiedene Informationen zu erhalten. Ich würde gerne LINQ verwenden, um es zu tun. Das Problem ist, dass ich es für mein Leben nicht verstehe. Die Syntax wirft mich ab, die Tatsache, dass die Ergebnisse nicht stark typisiert sind, wirft mich ab, und die Beispiele im Web sind zu stark vereinfacht oder zu kompliziert.
Wie konnte ich
- eine Anzahl von Scans holen nach Datum gruppiert, wo wahre Delivered =
- eine Anzahl von Scans holen von der Einrichtung gruppiert, wo wahre Delivered =
- eine Anzahl von Scans Get , gruppiert nach Staat, wo geliefert = wahr
Ich möchte dann dies in einer For Each-Schleife verwenden.
For Each result In GroupedResults
‘My Code
Next
Idealerweise hätte ich gerne das Ergebnis stark typisiert. Ist das möglich?
Kann jemand einige Links empfehlen, um damit zu beginnen? Jede Website, die mir begegnet, bringt mich nur zum Schwimmen. Ich verstehe es überhaupt nicht.
EDIT:
Vielen Dank Jungs. Ich kratze mich immer noch mit dem Kopf über dieses Zeug, aber zumindest ist dies ein Beispiel aus der realen Welt, das ich verwenden kann, um eine Vorstellung davon zu bekommen, was vor sich geht.
Ich hatte gehofft, dass dieses einfache Beispiel mir helfen würde, in einen komplexeren Gebrauch zu springen - noch kein Glück. Ich hätte das auf Anhieb fragen sollen.
Alle Beispiele scheinen eine Schlüssel/Wert-Antwort zu verwenden. Was ist, wenn ich zwei Werte habe, die ich gruppieren muss?
Class Scan
Delivered As Boolean
Scanned As Boolean
ScanDate As Date
State As String
Facility As String
End Class
1. Get a count of Delivered = True, a count of Scanned=True, grouped by Date
2. Get a count of Delivered = True, a count of Scanned=True, grouped by Facility
3. Get a count of Delivered = True, a count of Scanned=True, grouped by State
Ist es möglich, dies in einem Ergebnis zu erhalten?
bearbeiten Edit:
Beantwortet meine eigene bearbeiten! Dies scheint für mich zu arbeiten:
Dim query = From r In scans _
Group r By r.ScanDate Into g = Group _
Select New With _
{g, .DeliveredCount = g.Count(Function(s) s.Delivered), .ScannedCount = g.Count(Function(s) s.Scanned)}
Vielen Dank Jungs. Sie haben mich zu dem Punkt gebracht, wo ich eine Lösung heraushacken könnte. Ich verstehe immer noch nicht, was ich tue (Was ist Funktion (en) ?!), aber ich habe etwas, womit ich anfangen kann. Ich habe vor, Zeit damit zu verbringen, das jetzt zu lernen. Ich denke, was mich wirklich abschreckte ist, dass die Samples im Netz C# sind. Normalerweise habe ich kein Problem, die Syntax zu konvertieren, aber mit LINQ ist das nicht so einfach. Ich dachte, ich würde etwas falsch machen, aber es war nur, dass die Syntax sehr unterschiedlich war.
Wünschen Sie separate Zählungen für jeden Liefertermin? Ihre Ergebnisse wären also: 3 wurden am Tag X geliefert, 6 wurden am Tag Y geliefert ... etc. Ist das, wonach Sie suchen? –
Was lässt Sie glauben, dass die Ergebnisse nicht stark typisiert sind? –
Sie sind stark typisiert. Wenn Sie nur eine Vanilla-Abfrage (von s als Scan select s) ausführen, wird es nicht als Scan umgewandelt, aber Sie können einfach CType dazu verwenden. –