Generieren Sie ein Datumsarray innerhalb des angegebenen Datumsbereichs
In einigen Fällen ist es zur genauen Darstellung von Daten in einem Diagramm mit mehreren Reihen erforderlich, eine vollständige Liste aller Daten in einem bestimmten Bereich zu erstellen. Wenn beispielsweise die Datumsbereiche verschiedener Datenreihen im Diagramm unterschiedlich sind, wird das Diagramm aufgrund der Inkonsistenz der Zeitachse der X-Achse geneigt.
Es gibt mehrere Möglichkeiten, ein Array oder eine Liste aller Daten innerhalb eines bestimmten Datumsbereichs zu erstellen. Zwei gängige Methoden umfassen die Verwendung von LINQ zur Verbesserung der Einfachheit und Lesbarkeit und die Verwendung von for-Schleifen zur Erzielung einer klareren Steuerung.
LINQ-Methode
<code class="language-csharp">Enumerable.Range(0, 1 + end.Subtract(start).Days) .Select(offset => start.AddDays(offset)) .ToArray();</code>
Bei dieser Methode generiert die Methode Range
eine Zahlenfolge von 0 bis zur Gesamtzahl der Tage im Datumsbereich, und die Methode Select
wandelt jede Zahl in ein Datum um, indem sie zum Startdatum addiert wird. Das Ergebnis ist ein Array, das alle Datumsangaben im angegebenen Bereich enthält.
For-Schleifen-Methode
<code class="language-csharp">var dates = new List<DateTime>(); for (var dt = start; dt <= end; dt = dt.AddDays(1)) { dates.Add(dt); }</code>
Diese Methode verwendet eine for-Schleife, um jedes Datum im angegebenen Bereich schrittweise zur Liste hinzuzufügen. Die Schleife wird fortgesetzt, bis das Enddatum erreicht ist, um sicherzustellen, dass alle Daten enthalten sind.
Füllen Sie fehlende Werte mit Standardwerten
Um Szenarios zu bewältigen, in denen in einigen Serien möglicherweise Daten für bestimmte Daten fehlen, sollten Sie erwägen, diese Daten mit Standardwerten zu füllen. Dies kann erreicht werden, indem ein Wörterbuch verwendet wird, jedes Datum mit seinem entsprechenden Wert verknüpft wird und ein Standardwert verwendet wird, wenn kein Wert vorhanden ist.
<code class="language-csharp">var paddedSeries = fullDates.ToDictionary(date => date, date => timeSeries.ContainsKey(date) ? timeSeries[date] : defaultValue);</code>
In diesem Beispiel ordnet das Wörterbuch jedes Datum seinem Wert zu und für Datumsangaben, die in der Zeitreihe nicht vorhanden sind, wird ein Standardwert zugewiesen. Bei diesem Ansatz behält der resultierende Datensatz einen konsistenten Datumsbereich bei und füllt Standardwerte für fehlende Datenpunkte auf.
Das obige ist der detaillierte Inhalt vonWie kann ich in C# ein Array von Daten zwischen zwei angegebenen Daten generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!