LINQの利用 - シンプルなLINQを記述して利用する - C#

LINQの利用方法を紹介します。

LINQを用いた要素抽出クエリ

UI

以下のUIを作成します。

コード

以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SimpleLinq
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      int[] data = new int[10] { 10, 2, 4, 1, 9, 3, 8, 12, 15, 5 };
      
      /*
      //下記の記述方法でもよい
      int[] data = new int[10];
      data[0] = 10;
      data[1] = 2;
      data[2] = 4;
      data[3] = 1;
      data[4] = 9;
      data[5] = 3;
      data[6] = 8;
      data[7] = 12;
      data[8] = 15;
      data[9] = 5;
      */

      var query = from i in data where i > 5 select i;
      foreach (int n in query) {
        textBox1.Text += string.Format("{0:d}\r\n", n);
      }
    }
  }
}

解説

  var query = from i in data where i > 5 select i;
LINQのクエリを記述します。dataの各要素をiとしてiの値が5以上のものを取り出し、queryに設定します。

  foreach (int n in query) {
    textBox1.Text += string.Format("{0:d}\r\n", n);
  }
queryの要素をTextBoxに表示します。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


ボタンをクリックします。結果が表示されます。dataの配列のうち、5より大きい要素がテキストボックスに表示されています。

LINQを用いた要素抽出クエリで個数を取得する

UI

以下のUIを作成します。ボタンを2つ配置してありますが、Button2のみを利用します。

コード

以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SimpleLinq
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button2_Click(object sender, EventArgs e)
    {
      int[] data = new int[10] { 10, 2, 4, 1, 9, 3, 8, 12, 15, 5 };

      var query = from i in data where i > 5 select i;
      textBox1.Text += string.Format("該当した個数:{0:d}個\r\n", query.Count());
    }
  }
}

解説

  var query = from i in data where i > 5 select i;
LINQのクエリを記述します。dataの各要素をiとしてiの値が5以上のものを取り出し、queryに設定します。

  textBox1.Text += string.Format("該当した個数:{0:d}個\r\n", query.Count());
queryの条件にマッチした要素の個数をTextBoxに表示します。

実行結果

プロジェクトを実行し[Button2]のボタンをクリックします。LINQのクエリ式に一致した要素の個数が表示されます。(下図参照)

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2018-01-05
作成日: 2013-07-11
iPentec all rights reserverd.