Suchen Sie nach fehlenden Daten für einen bestimmten Bereich

8

Ich versuche, fehlende Daten zwischen zwei DateTime-Variablen für eine Sammlung von DateTimes zu finden.

Zum Beispiel.

%Vor%

würde mir ein List<DateTime> von

geben %Vor%

Ich denke an ein paar war der Umsetzung dieser, aber nichts sauber und einfach

Irgendwelche Ideen?

    
mat-mcloughlin 02.08.2010, 13:45
quelle

5 Antworten

16

Ich kann mir viele Möglichkeiten vorstellen, dies zu implementieren, z. B .:

%Vor%

Und du könntest das Range-Zeug in eine Extension-Methode einfügen

%Vor%

Dann wäre es einfach

%Vor%

Aber vielleicht ist das keine High-Performance-Lösung: -)

    
sloth 02.08.2010, 14:00
quelle
4

In .NET 2.0:)

%Vor%     
Florian 02.08.2010 15:33
quelle
2

Je nachdem, was genau Sie suchen und wie groß die Datensätze sind. Ein einfacher Weg wäre, die Daten in eine Sammlung zu laden und dann eine einfache Schleife zu verwenden. Ich füge hier in Kürze ein Codebeispiel hinzu.

%Vor%

In diesem Beispiel müssen Sie nur "existingDates" mit den richtigen Werten laden, dann wird die Liste "missingDates" Ihre Ergebnisse haben

    
Mitchel Sellers 02.08.2010 13:58
quelle
1

Lazy ausgewertete Hilfsmethode hilft beim Generieren der Liste von Daten, mit denen verglichen werden soll. Möchte Leistungsprofil diese Methode für große Sammlungen.

%Vor%     
Norman H 02.08.2010 14:03
quelle
1
%Vor%

Wenn Sie daran gedacht haben, LINQ zu lösen, glaube ich nicht, dass es möglich ist, es sei denn, Sie hätten auch eine Liste aller Daten zwischen dem Min- und Max-Datum. In SQL ist dies eine Kalendertabelle, die alle Daten für einen bestimmten Zeitraum enthält.

Hier ist eine LINQ-Lösung, wo ich die oben erwähnte Kalenderliste erstelle und dann nach fehlenden Daten suche:

%Vor%     
Thomas 02.08.2010 13:58
quelle

Tags und Links