Visual Basic 入門

LINQと遅延実行

LinkedInラーニングの無料トライアルを今すぐ試そう

無料で視聴する すべての加入プランを見る
このレッスンでは、LINQを使ううえで意識しなければならない、遅延実行について説明します。
03:11

字幕

このレッスンでは、LINQ を使う上で意識しなければならない、遅延実行について説明します。始めにこちらのソースコードをご覧下さい。4行目では data という変数に、15 から 5 ずつ飛ばした値を格納しています。その後5行目では、この data を対象にLINQ を用いて処理を行なっています。処理内容は、この各要素の値を10 で割った時に余りが 0 である、というものの選択を行なっています。9行目では、この result の中身に対してコンソールへ出力を行ない、その後 13 行目ではこの data の0番目の値、つまり 15 を 10 へと書き換えています。その後再度コンソールへ出力を行なうコードを書いています。このプログラムを実行してみましょう。すると1回目は 20, 30, 40 のように出力が行なわれましたが、2回目は 10, 20, 30 のように出力が行なわれています。またクエリ式だけではなく、メソッド構文の場合も同様の事が起こります。実際に実行してみると、確かに 20, 30 であったのが10 から始まるようになっています。これは LINQ の遅延実行によるものです。LINQ のクエリ式やLINQ のメソッド構文は、このようなクエリ変数に代入された時点では評価されず、For Each などの反復処理を行なった時点で、その中の値が評価されます。 これを遅延実行と言います。そのため、この反復実行が終わった後に元々のデータソースを変更した後、再度反復実行を行なうとこの時に再度評価が行われ、結果の値が変わるということが先程の理由です。ではこのようなデータソースに対する代入やデータソースの変更に対応するには、どのようにすればいいでしょうか。そのためには即時実行と呼ばれる処理を行なう必要があります。この即時実行を行なう手法の1つとして、ToList メソッドを呼び出すという方法があります。これは通常のメソッド構文と同様にして、クエリ変数.ToList ( ) のように記述をすることで、この result の中の値をこの ToList を呼び出した段階で評価するという事を行なっています。では実際にこの result 2 の値を出力してみましょう。すると1回目もしくは2回目でもどちらも 20 から始まっており、この 14 行目による変更を受けていない、という事が分かります。また First メソッドやSingle メソッドも、即時実行を行なうメソッドの1つですので、有効活用すると良いでしょう。このレッスンでは、LINQ を使う上で意識しなければならない遅延実行について説明しました。

Visual Basic 入門

Visual Basicはプログラミング初心者にも比較的親しみやすい構文を採用したプログラミング言語です。従来のデスクトップアプリから最新フレームワークを用いたアプリまで、簡単に幅広く開発できます。このコースでは基本的な文法やクラス・名前空間などのより高度な機能、LINQなどVisual Basicを使ううえで必要な知識をひと通り学びます。

2時間53分 (43 ビデオ)
現在、カスタマーレビューはありません…
ソフトウェア・トピック
Visual Basic Visual Basic 2015
プラン加入者限定
発売日:2017年01月03日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。