1.C#、VB.NET-7.配列-2.LINQイテレータによる遅延評価と同様で、LINQでも遅延評価を実装することが出来ます。単純に1秒待つメソッド関数があるとします。FunctionLINQを利用してコレクション全ての要素をこの関数へ渡して結果を受け取るような処理を考えます。res1は先行評価、res2は遅延評価で、結果をそれぞれ2回ずつforeachでループ処理をします。クラスで時間を計ります。sw.Elapsed)先行評価と遅延評価はの違いは、LINQの結果をToArrayメソッドがあるかないかの違いだけです。どちらが何秒になるでしょうか。00:00:10.0103753遅延評価が10秒と先行評価の倍かかっているのが分かります。これは、res2はLINQの段階では評価されず、foreachで初めて関数に渡されて評価される為です。これはブレークポイントを設定してみるとより分かりやすいです。よって、foreachが2回あるので2回ずつ合計10回testFunctionが実行されます。結果、先行評価に比べて倍の時間がかかるわけです。それに比べて先行評価は、ToArrayメソッドが実行される瞬間でLINQが評価されますので、foreachでは評価されません。5回testFunctionが実行されるだけです。今度はforeachの途中で条件分岐を入れてみます。testFunctionの結果が10未満の場合はforeachを打ち切るようにします。あと、foreach文は一つに減らしてみましょう。評価値を都度評価できるという点があります。上記の例は少し極端ですが、遅延評価をよく理解しないでLINQやイテレータを使用すると、思いがけないところでパフォーマンスが極端に落としてしまったり、逆にLINQを利用するメリットを無視してしまう可能性がありますので、よく理解して使用するようにしましょう。22:03LINQによる遅延評価Tweet広告を非表示にする関連記事2020-01-25型変換は何を使う?(値型⇒String型)今回は値型⇔string型です。共通認識は前回と一緒です。VB.NET...2019-06-12SelectManyメソッド単純な配列に対して処理する場合は、SELECTメソッドで処理でき...2019-06-05インデックス付きSelectメソッドコレクションの要素を処理する際、ナンバリングが必要なことが...2019-05-09SelectメソッドLINQで一番利用されている(と思う)Selectメソッドです。Javascriptからクリップボードを設定はてなブログをはじめよう!sasaki816さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。