یک برنامهٔ C# بنویسید که لیستی از مقادیر DateTime را گرفته و تعداد رخدادها را برای هر ماه (براساس مقدار DateTime.Month) محاسبه و بهصورت مرتب نمایش دهد.
2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:17 0.0
برای حل این مسئله میتوانید با یک آرایهٔ شمارندهٔ 12 عنصری یا یک Dictionary شمارش هر ماه را نگهداری کنید، سپس با یک حلقه روی لیست تاریخها مقدار DateTime.Month را خوانده و شمارندهٔ متناظر را افزایش دهید. بهعنوان گزینهٔ سادهتر میتوانید از LINQ و GroupBy برای گروهبندی بر اساس d.Month استفاده کنید و نتایج را مرتب کنید؛ برای نمایش نام ماه هم میتوانید از CultureInfo و DateTimeFormatInfo استفاده کنید. توجه داشته باشید DateTime.Month عددی بین 1 تا 12 برمیگرداند و برای سادگی کنترلهای ابتدایی مانند بررسی خالی بودن لیست کافی است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای حل مسئله میتوان از GroupBy با Month استفاده کرد و نتایج را با OrderBy کلید ماه مرتب کرد؛ این کار ساده و قابل فهم است. توجه کنید که DateTime.Month از 1 تا 12 بازمیگردد، بنابراین کلید گروهبندی هم باید بر همین بازه باشد تا واگرایی پیش نیاید. برای نمایش نام ماه به صورت locale-محور از CultureInfo یا DateTimeFormatInfo استفاده کنید تا خروجی با زبان کاربر سازگار باشد. همچنین اگر لیست تاریخها ممکن است خالی باشد، حتماً چک کنید تا از استثناء یا خروجی نامشخص جلوگیری شود.
گزارش