• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

魅惑のC#

C#でLINQを使って様々なソースからデータを取得・操作する

渡辺 弘之、千代田 まどか=日本マイクロソフト 2017/05/19 日経ソフトウエア
出典:日経ソフトウエア 2017年7月号p80-84
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
目次一覧

 今回は、C#の強力な機能であるLINQ(Language Integrated Query)を紹介します*1。LINQは、オブジェクトやデータベースなどのデータソースを操作するために利用します。

*1 日本語では「統合言語クエリー」と呼ばれています。

 データソースを操作するといえば、リレーショナルデータベース(RDB)に問い合わせを行うSQL(Structured Query Language)が有名です。SQL文を使えば、データベースに格納されているデータの中から条件に合ったデータを取得する、データを挿入・削除する——といった処理を実現できます。

 LINQもクエリーを行うために利用します。ですが、SQLのようにデータベースに特化したものではありません。LINQを使えば、データベースに限らず「様々なデータソースに対して問い合わせができる」のです。

 例えば、オブジェクトやXMLファイルなどのデータソースから条件に合ったデータを取得できます。もちろん、データベースに問い合わせてデータを取得することも可能です。しかも、データソースごとにC#コードを変更する必要はありません。各データソースへの問い合わせ方法は異なりますが、LINQ内部でこの差分を吸収してくれるのです(図1)。つまり、データベースへの問い合わせもXMLファイルへの問い合わせも同じ記法で実現できるのです。

図1●LINQの利用イメージ
[画像のクリックで拡大表示]

LINQの標準クエリー演算子

 早速、LINQを使ったプログラムを見てみましょう。Visual Studioを起動して、NSSample8というC#のコンソールアプリケーションのプロジェクトを作成します。そして、ソリューションエクスプローラーのProgram.csにリスト1のコードを記述します。LINQを使うには、(1)の「using System.Linq;」が必要なので忘れないようにしてください。

リスト1●LINQを使ってCountryの項目によって映画名を絞り込むプログラム。誌面の都合上、「{」の位置を変更している
[画像のクリックで拡大表示]

 このコードは、前回紹介したコレクション(FilmクラスのListオブジェクト)のデータに対して、LINQを使った例です。映画名や監督、制作国や制作年をコレクションオブジェクトに格納して、そのオブジェクトからデータを取得してコンソール画面に表示するものです。ただし、前回よりも映画の項目を増やしています。

 このプログラムを実行すると、図2のような結果が表示されます。コレクションオブジェクトのFilmオブジェクトから日本映画とアメリカ映画で分類して取得し、それを制作年とともに表示します。

図2●リスト1の実行結果
[画像のクリックで拡大表示]

ここから先はITpro会員(無料)の登録が必要です。

次ページ ポイントは、リスト1の中には、if文のようなデー...
  • 1
  • 2
  • 3
  • 4
  • 5

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

  • 【何がすごいの?「5G」5つの疑問】

    5Gはどれくらい速いの?

     第5世代移動通信システム(5G)の利用者が体感できる実効速度は、現行の4G(LTE)の100倍に当たる毎秒数百メガ~数ギガビット。携帯最大手のNTTドコモはそう想定する。通信条件の良いピーク時の実効速度は、サービス開始当初は毎秒数ギガビットにとどまるが、その後毎秒10ギガビット以上へと段階的に速ま…

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

サーバー/ストレージ

ネットワーク/通信サービス

セキュリティ

もっと見る