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