C#プログラマーのための 基礎からわかるLINQマジック!
2016年5月12日紙版発売
2016年5月12日電子版発売
山本康彦 著
A5判/352ページ
定価3,168円(本体2,880円+税10%)
ISBN 978-4-7741-8094-6
書籍の概要
この本の概要
現在では“技術に保守的な現場”においてさえ顧客事情が変わっています。.NETの環境でも核心的な技術=LINQがようやく使えるようになりました。LINQは,実際に使ってみると“LINQマジック”とでも呼べる威力を発揮します。その対象も,配列,コレクションなど(LINQ to Objects),XML(LINQ to XML),データベース(LINQ to ADO.NET)といったように広範囲に及びます。LINQそのものの“わかりにくさ”から使わなかった開発者も少なくなかったようですが,本書がプログラマーのLINQアレルギーを取り除きます。
こんな方におすすめ
- C#や.NETは扱えるが,現場の事情によりLINQについては未経験か,熟知していないプログラマー
目次
- はじめに
Part 1 LINQマジック
Chapter 1 "Hello, LINQ!"
- 1.1 Windows フォームにベジエ曲線を描く
- 1.2 LINQ はforループを簡潔に書ける
- 1.3 「"Hello, LINQ!"」 のコード
Chapter 2 数値の集計
- 2.1 準備
- 2.2 すべてを合計する
- 2.3 条件を満たす数値だけを取り出す
- 2.4 条件を満たす数値だけを合計する
- 2.5 メモリ消費を確かめる
- 2.6 null を含むデータを処理する
- 2.7 「数値の集計」のコード
Chapter 3 文字列の処理
- 3.1 準備
- 3.2 文字数をカウントする
- 3.3 CSVファイルから必要なデータだけを取り出す
- 3.4 文字列コレクションを検索する
- 3.5 文字列を反転する
- 3.6 文字列コレクションで複雑な検索をする
- 3.7 「文字列の処理」のコード
Chapter 4 複数のUIコントロールの操作
- 4.1 準備
- 4.2 UIコントロールを操作する
- 4.3 「複数のUIコントロールの操作」のコード
Chapter 5 CSVファイルの処理
- 5.1 準備
- 5.2 ファイルを1行ずつ読み込む
- 5.3 ファイルの1行からSampleオブジェクトを作る
- 5.4 データの種類を判定する
- 5.5 数値を合計する
- 5.6 Mainメソッドにまとめる
- 5.7 LINQマジックの「秘密」
- 5.8 残りの数値も合計する
- 5.9 「CSVファイルの処理」のコード
Chapter 6 LINQマジック ――3つの「秘密」
- 6.1 LINQはループを分解/再構築させる
- 6.2 LINQはメモリを節約する
- 6.3 LINQは必要に応じて(遅延)実行される
Chapter 7 ToListメソッドの罠
- 7.1 ToListメソッドのデメリット
- 7.2 ToListメソッドのメリット
- 7.3 「ToListメソッドの罠」のコード
Chapter 8 LINQの仕組み
- 8.1 IEnumerable
インターフェイス - 8.2 IQueryable
インターフェイス
Chapter 9 別の書き方 ――クエリ式
Chapter 10 LINQ拡張メソッドの作り方
- 10.1 独自のLINQ拡張メソッドとは?
- 10.2 LINQを使うLINQ拡張メソッド
- 10.3 foreachを使うLINQ拡張メソッド
- 10.4 ラムダ式を受け取るLINQ拡張メソッド
- 10.5 「LINQ拡張メソッドの作り方」のコード
Chapter 11 LINQデータソースの作り方
- 11.1 遅延実行しないLINQデータソースの作り方
- 11.2 遅延実行するLINQデータソースの作り方
- 11.3 「LINQデータソースの作り方」のコード
Chapter 12 LINQプロバイダーの作り方
- 12.1 LINQプロバイダーの構成
- 12.2 LINQプロバイダーの標準的な部分実装
- 12.3 LINQプロバイダーを実験的に実装してみる
- 12.4 実験的に作ったLINQプロバイダーを試す
- 12.5 LINQプロバイダーのメリット
- 12.6 「LINQプロバイダーの作り方」のコード
Chapter 13 LINQマジックの正体 ――まとめ
Part 2 LINQを使いこなすための機能
Chapter 1 拡張メソッド
Chapter 2 ラムダ式
Chapter 3 Visual Studio .NET 2003での新機能
- 3.1 foreach構文
- 3.2 デリゲート
- 3.3 IEnumerableインターフェイス
Chapter 4 Visual Studio 2005での新機能
- 4.1 ジェネリック
- 4.2 yieldキーワード(反復子,イテレーター)
- 4.3 匿名メソッド(匿名デリゲート)
- 4.4 静的クラス
- 4.5 パーシャル型
- 4.6 Nullable
型(null許容型)
Chapter 5 Visual Studio 2008での新機能
- 5.1 varキーワード
- 5.2 拡張メソッド
- 5.3 匿名型
- 5.4 ラムダ式
- 5.5 オブジェクト初期化子
- 5.6 コレクション初期化子
- 5.7 配列宣言の型省略(暗黙的に型指定される配列)
- 5.8 自動実装プロパティ
- 5.9 パーシャルメソッド
- 5.10 クエリ式
Chapter 6 Visual Studio 2010での新機能
- 6.1 省略可能な引数(オプション引数)
- 6.2 名前付き引数
- 6.3 共変性と反変性
- 6.4 PLINQ
Chapter 7 Visual Studio 2012での新機能
- 7.1 呼び出し元情報(Caller Info)属性
- 7.2 async/awaitキーワード
Chapter 8 Visual Studio 2015での新機能
- 8.1 自動実装プロパティの初期化子
- 8.2 読み取り専用プロパティの自動実装
- 8.3 ラムダ式によるメンバー定義
- 8.4 補間文字列(String Interpolation)
- 8.5 nameof演算子
- 8.6 Null条件演算子
- 8.7 using staticディレクティブ
Part 3 LINQを活用しよう
Chapter 1 LINQ to Objects
Chapter 2 LINQ to ADO.NET
- 2.1 LINQ to DataSet
- 2.2 LINQ to SQL
- 2.3 LINQ to Entities
Chapter 3 LINQ to XML(XLinq)
Chapter 4 Parallel LINQ(PLINQ)
Chapter 5 Reactive Extensions(Rx)
Chapter 6 LINQ to CSV
Chapter 7 Html Agility Pack
Chapter 8 Webサービスを利用するためのLINQ
- 8.1 LINQ to JSON
- 8.2 LINQ-to-Wiki
Chapter 9 他のプラットフォームのLINQ
- 9.1 linq.js
Appendix Visual Studio Community 2015のインストールと使い方
Chapter 1 Visual Studio 2015の特徴と種類
Chapter 2 インストール
Chapter 3 初めての起動
Chapter 4 コンソールプログラムを作る
- 4.1 プロジェクトを作る
- 4.2 プログラムを書く
- 4.3 ビルド,デバッグ実行
- 4.4 完成したプログラムを配布する
Chapter 5 Windowsフォームプログラムを作る
- 5.1 プロジェクトを作る
- 5.2 UIを作る
- 5.3 プログラムを書く
Chapter 6 WPFプログラムを作る
- 6.1 プロジェクトを作る
- 6.2 UIを作る
- 6.3 プログラムを書く
- おわりに
この本に関連する書籍
-
プロになるなら身につけたい プログラマのコーディング基礎力
仕事でコードを書くということは,そのコードを含むプログラムの品質を管理し,より良いものに改善し続けていくために,可読性を高めたり,よりシンプルにしたり,古い...
-
実戦で役立つ C#プログラミングのイディオム/定石&パターン
C#のプログラムを作成するには,解こうとする問題の手順と利用するデータ構造を考え,それをC#のコードとして記述するスキルが必要になってきますが,そういったスキル...
-
C#による マルチコアのための非同期/並列処理プログラミング
いまやマルチコアのCPUは主流と言えますが,その性能を十分に発揮させるためにはソフトウェアもそれに対応し,非同期処理/並列処理でパフォーマンスを上げなければなり...
-
[速攻入門]C#プログラミング すぐに現場で使える知識
C#の需要が高まっている現在,プログラミング現場では,C#のことを知らないプログラマーであっても,これを使う必要に迫られています。いま最もC#の知識を必要としてい...
-
【省エネ対応】C# プログラムの効率的な書き方
C#が提供するLINQ to Objectsは,多大な効能と価値を併せ持つ重要な考え方ですが,Cのポインタ同様に抽象的でわかりりにくいものです。実際の使い方が初期と現在とでは...