Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menjana Tatasusunan atau Senarai Julat Tarikh dalam C#?

Bagaimana untuk Menjana Tatasusunan atau Senarai Julat Tarikh dalam C#?

Susan Sarandon
Susan Sarandonasal
2025-01-10 21:21:44603semak imbas

How to Generate a Date Range Array or List in C#?

Jana tatasusunan julat tarikh atau senarai dalam C#

Apabila menjana berbilang siri data dalam carta yang menggunakan tarikh sebagai paksi X, adalah penting untuk mempunyai senarai tarikh lengkap yang meliputi keseluruhan julat. Ini memastikan bahawa semua siri mempunyai nilai tarikh yang konsisten, walaupun mereka tidak mempunyai data untuk semua tarikh.

Kaedah LINQ

Cara yang cekap ialah menggunakan LINQ:

<code class="language-csharp">Enumerable.Range(0, 1 + end.Subtract(start).Days)
          .Select(offset => start.AddDays(offset))
          .ToArray();</code>

Kod ini mencipta senarai tarikh bermula pada permulaan julat tarikh (mula) dan meningkat sekali sehari sehingga penghujung julat (tamat) dicapai.

Untuk kaedah gelung

Sebagai alternatif, anda boleh menggunakan gelung for:

<code class="language-csharp">var dates = new List<DateTime>();

for (var dt = start; dt <= end; dt = dt.AddDays(1))
{
   dates.Add(dt);
}</code>

Gelung ini mencipta senarai tarikh dengan cara yang sama seperti kaedah LINQ.

Nilai isian

Untuk mengisi nilai lalai siri tarikh yang tiada, anda boleh menghitung semua tarikh dalam julat penuh dan mengisinya:

<code class="language-csharp">var paddedSeries = fullDates.ToDictionary(date => date, date => timeSeries.ContainsDate(date) 
                                               ? timeSeries[date] : defaultValue);</code>

Kod ini mencipta kamus yang kuncinya ialah tarikh dan nilainya ialah data. Jika tarikh wujud dalam siri, nilai yang sepadan akan diambil jika tidak, nilai lalai ditetapkan.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Tatasusunan atau Senarai Julat Tarikh dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn