匿名メソッド、ラムダ式、Linq

今回のテーマ

  1. 匿名関数
  2. ラムダ式
  3. Linq

準備

CSharp1-3-2.zip をダウンロードして展開し、.sln ファイルを Visual Studio で開き、実行してみましょう。

LINQ とは

配列 (array) やリスト (list) に対してメソッドを追加し、そのメソッドによりデータを操作することができる。

今回の例ではデータ操作として「抽出」(配列から指定した条件を満たす要素のみを抽出する)と「並べ替え」(計算結果の値の昇順・降順に並べ替える)を行っている。

それ以外にどのような操作ができるかは参考資料を参照すること。

また、抽出時の条件指定や並べ替えをする時の「どのような順番に並べ替えるか」を指定するためにデリゲートを使ってメソッドを渡している。この記述に「ラムダ式」を使うとプログラムがとても短くなる。

参考資料

課題

ソリューションを "2 Lambda Expression Exercise" プロジェクトに切り替え、Program.cs を開き、以下の課題に解答せよ。

課題1

以下のように変数 stringArray が宣言されている。

string[] stringArray = { "banana", "orange", "kiwi", "apple", "pineapple" };

Linq を使って、stringArray から「文字列の長さが 5 文字より長い要素」を抽出し、出力せよ

課題2

以下のように変数 intArray が宣言されている。

int[] intArray = { 9, 3, 5, 8, 1, 7, 2, 4, 6, 0 };

Linq を使って、intArray から偶数を抽出し、出力せよ

Unity での使用例

LearnLambdaAndLinq.unitypackage をダウンロードして Unity プロジェクトにインポートし、"Linq" シーンを開いて実行する。

照準の動きを制御する Crosshair スクリプト コンポーネントと、爆弾を見えなくする BombManager スクリプト コンポーネントに Linq・匿名関数・ラムダ式の使用例がある。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です