LoginSignup
2
0

More than 1 year has passed since last update.

お疲れ様です。たなしょです。
今日はLINQのプログラムを書きました。
写経したおかげである程度分かった気がしてきました。

Containsメソッド

指定した文字が含まれているか判定します。文字検索とかで使えそうです。

string型は値が変わるたびに新たなインスタンスを生成する

string name = "test1"
name = "test2"

nameの中身が変わったのではなくインスタンスの参照先が変わります。

object型

object ob1 = 100;
object ob2 = 100;
bool b2 = ob1 == ob2; // b2はfalse

foreachで多重配列も順番に出力できる

int[,] Test2D = new int[3,2] {{1, 2}, {3, 4}, {5, 6}};

foreach (int i Test2D)
{
    Console.WriteLine("{0}", i);
}

TryParseメソッド

数値に変換できた場合はtrue, それ以外はfalse。エラー回避に便利そうです。

イテレーターの使い方

土日以外の曜日を1日ずつ取得して、年月日を表示することを10回繰り返すプログラムです。
こんな感じでイテレーターを使っていくんですね

class Sample
{
    static void Main()
    {
        foreach(DateTime dt in Test(10))
        {
            Console.WriteLine(dt.ToString("yyyy年MM月dd日(ddd)"));
        }

        static IEnumerable Test(int days)
        {
            DateTime dt = DateTime.Today;
            for (int i =0; i < days;)
            {
                if ((dt.DayOfWeek != DayOfWeek.Saturday) &&
                    (dt.DayOfWeek != DayOfWeek.Sunday))
                {
                    yield return dt;
                    i++;
                }
                dt = dt.AddDays(1);
            }
        }
    }
}

LINQの使い方

初めてLINQのコードを書きました。これは2以上4以下の条件でデータを抽出します。
こう書いてみるとデータセットを条件つけて抽出する際に見やすいコードになりますね。

class Sample
{
    static void Main()
    {
        int[] numbers = { 1, 2, 3, 4, 5 };
        var query = from n
                    in numbers
                    where n >= 2 && n <= 4
                    select n;
        foreach (var a in query) Console.WriteLine(a);
    }
}

最後に

LINQの書き方が理解できました。
これでC#の基礎となる部分は少しは理解できたと思います。
明日からオブジェクト指向プログラミングを軽く再度復習します。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0