プログラミング演習Ⅲ(2023)

【課題9-01】LINQの練習1

プロジェクトタイプC#コンソールアプリ※
プロジェクト名Prac_9_01
ソリューション名PET9
ターゲットフレームワーク.NET 6.0 (長期的なサポート)
最上位レベルのステートメントを使用しない使用しない(チェックオン)

※ 「コンソールアプリ(.NET Framework)」ではないので注意せよ!

あらかじめ用意されているDateTime型の配列から, LINQを用いて,以下の条件を満たす要素のみを取得せよ.

  • 条件) その日付が火曜日の日付であること
注意
  • この設問ではコンソール(黒画面)への表示処理を作る必要はない

プログラムの概形は_のようにすること(必ずこのコードをコピー&ペーストして用いること).

テンプレートコード
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
namespace Prac_9_01
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 処理対象の配列(変更してはならない)
            DateTime[] importantDays = new[]
            {
                new DateTime(2023,  2, 25), new DateTime(2023,  4, 28),
                new DateTime(2023, 12,  4), new DateTime(2023,  3,  2),
                new DateTime(2023,  4, 25), new DateTime(2023,  6, 20),
                new DateTime(2023, 10,  2), new DateTime(2023,  9,  8),
                new DateTime(2023, 10, 10), new DateTime(2023, 12,  2),
                new DateTime(2023,  2, 22), new DateTime(2023,  9,  8),
                new DateTime(2023, 11, 21), new DateTime(2023, 11, 25),
                new DateTime(2023,  8, 21), new DateTime(2023, 11, 10),
                new DateTime(2023,  6,  6), new DateTime(2023,  6, 15),
                new DateTime(2023,  7, 24), new DateTime(2023,  9,  7),
                new DateTime(2023, 12, 23), new DateTime(2023, 10, 20),
                new DateTime(2023, 12,  5), new DateTime(2023,  1, 31),
                new DateTime(2023,  5, 20),
            };
                        
            var query = /********************************************/
                        /*                                          */
                        /*                  空欄                    */
                        /*   配列 importantDays から LINQ を用いて  */
                        /*   設問に示された条件の日付を絞り込む.   */
                        /*                                          */
                        /********************************************/
                        ;

            // 表示処理(変更してはならない)
            foreach (var d in query) 
            {
                Console.WriteLine($"{d:yyyy-MM-dd}({d.DayOfWeek})");
            }//foreach            

        }// end of Main()
    }// end of class
}// end of namespace

正しく実装できた場合,実行結果は_のようになる.

2023-04-25(Tuesday)
2023-06-20(Tuesday)
2023-10-10(Tuesday)
2023-11-21(Tuesday)
2023-06-06(Tuesday)
2023-12-05(Tuesday)
2023-01-31(Tuesday)
実行結果

ヒント

  • DateTime型の変数が示す日付の曜日は,.DayOfWeek(でい・おぶ・うぃーく)プロパティによって調べることができる._はその使用構文を示している.
    • .DayOfWeekプロパティの型は,このプロパティと同名の列挙型であるDayOfWeek列挙型であり_のいずれかの値をとる.
    • 例えば日付が木曜日であることを確かめたい場合,「DateTime型の変数.DayOfWeek == DayOfWeek.Thursday」のような条件文を用いればよい.
DateTime型の.DayOfWeekプロパティ
DateTime型の変数・定数・式.DayOfWeek
DayOfWeek列挙型
意味
DayOfWeek.Sunday日曜日の日付であることを示す
DayOfWeek.Monday月曜日の日付であることを示す
DayOfWeek.Tuesday火曜日の日付であることを示す
DayOfWeek.Wednesday水曜日の日付であることを示す
DayOfWeek.Thursday木曜日の日付であることを示す
DayOfWeek.Friday金曜日の日付であることを示す
DayOfWeek.Saturday土曜日の日付であることを示す
Last updated on 2023-12-11
Published on 2023-12-11

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.