連載:[完全版]究極のC#プログラミング

Chapter4 Findメソッド

川俣 晶
2009/09/14

4.6 そして、LINQへ続く

 Find系メソッドを使った処理は、「1つの値の集まり」に対する処理を実現するが、「複数の値の集まり」に対する処理までは実現してくれない。そのため、たとえば複数の配列やコレクションをまたがった処理は記述しにくい。だが、それは第15章以降で解説するLINQがフォローしてくれる。

 お楽しみはこれからである。

【Exercise】練習問題

 次のプログラムには致命的な誤りが1つ含まれる。それはどれだろうか?

using System;

class Program
{
  static void Main(string[] args)
  {
    int[] array = { 1, 2, 3 };
    int sum = 0;

    Array.ForEach(array, (i) =>
      {
        sum += i;
        if( sum > 2 ) break;
      });

    Console.WriteLine(sum);
  }
}
  1. ラムダ式にreturn文がない
  2. ラムダ式にbreak文が含まれる
  3. ラムダ式内でスコープ外の変数arrayやsumを参照している
  4. Array.ForEach<int>とintを明示する必要があるのに、していない
  5. sumの値はラムダ式が入るごとに初期化されるので、値が積算されない

  ◎解答:「 2 」(この行をマウスで選択してください)End of Article


 INDEX
  [完全版]究極のC#プログラミング
  Chapter4 Findメソッド
    1.4.1 MATステートメントの思い出
    2.4.2 ForEachメソッドのbreak問題
    3.4.3 ForEachだけではない繰り返しメソッド
    4.4.4 複数の結果がほしい場合
    5.4.5 偉大なる前進とは何か?
  6.4.6 そして、LINQへ続く/【Exercise】練習問題
 
インデックス・ページヘ  「[完全版]究極のC#プログラミング」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間