Ich habe eine große Datentabelle (500k-1m Reihen), ohne ins Detail zu gehen dies ist eine Voraussetzung, wie der Endbenutzer alle Daten sehen kann/will. Dies ist auf einem lokalen Server, so dass Bandbreite usw. keine Sorgen für mich sind.Group DateTime Zeilen in Datentabelle von DateTime - C#
Ich habe ein DateTime-Feld in der DataTable, die ich gruppieren muss, lassen Sie mich erklären, was ich meine mit Gruppierung ... Es ist wahrscheinlich nicht das, was Sie meine ich meine (aus dem Blick auf die anderen Fragen hier!).
var table = new DataTable();
table.Columns.Add("EventTime", typeof(DateTime));
table.Columns.Add("Result", typeof(String));
table.Columns.Add("ValueOne", typeof(Int32));
table.Columns.Add("ValueTwo", typeof(Int32));
table.Rows.Add("2012-02-06 12:41:45.190", "A", "7", "0");
table.Rows.Add("2012-02-06 12:45:41.190", "B", "3", "89");
table.Rows.Add("2012-02-06 12:59:41.190", "C", "1", "0");
table.Rows.Add("2012-02-06 13:41:41.190", "D", "0", "28");
table.Rows.Add("2012-02-06 17:41:41.190", "E", "0", "37");
table.Rows.Add("2012-02-07 12:41:45.190", "F", "48", "23");
Ich würde erwarten, dass die obige Tabelle gruppiert werden, so dass ich eine Summe der „valueOne“ Spalte und ein Durchschnitt des „valueTwo“ -Spalte zu bekommen. Ich brauche die Gruppierung, um ein wenig flexibel zu sein, so dass ich angeben kann, dass ich nach Minuten gruppieren möchte (nur die erste und letzte Zeile würden gruppiert werden, der Rest würde nur ihre Werte liefern), oder nach Tagen (alle außer der letzten Zeile würde in einer einzigen Reihe gruppiert werden), usw.
Ich habe das ein paar Mal versucht, aber ich bekomme keine wo. Mein LINQ-Wissen ist nicht großartig, aber ich dachte, ich könnte das tun!
Hinweis: Die DataTable befindet sich bereits auf der Maschine für Berechnungen/Ansichten, die nicht geändert werden können, also sag "Hör auf, ein Idiot zu sein, filtere in SQL !!!" ist eine gültige Antwort, nur nutzlos für mich! :-D
auch, falls Sie es im Titel verpasst, muss ich dies in C# - Ich arbeite mit .NET 4.0 ...
Vielen Dank im Voraus, Ihnen zu helfen, unter der Annahme entscheiden! :-)
Auch wenn Sie die Daten bereits lokal geladen haben und sich nicht um die Leistung kümmern, sollten Sie darauf hinweisen, dass das Ausführen einer LINQ-Abfrage für einen Linq-to-SQL- oder Entity-Kontext aus Codesicht viel einfacher ist . – StriplingWarrior
@StriplingWarrior: Warum ist eine LINQ-To-SQL-Abfrage einfacher als eine LINQ-To-DataSet-Abfrage? –
@TimSchmelter: Da Datasets keine zur Kompilierungszeit bekannte Struktur haben. Sie müssen Verrenkungen durchführen, um Werte zu konvertieren und Indexer zu verwenden, anstatt nur die Syntax zum Generieren von Eigenschaften zu verwenden. – StriplingWarrior