【C#】【Linq】DataTable ~ DataTable で Linq する ~

■ DataTable で Linq する

dataTable.AsEnumerable().Where(x => x. ...) で行う

補足

 * 以下の関連記事でも使用している
https://blogs.yahoo.co.jp/dk521123/37979233.html

■ サンプル

using System;
using System.Data;
using System.Windows.Forms;

namespace SampleForm
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      var dataTable = new DataTable();

      dataTable.Columns.Add("area", typeof(string));
      dataTable.Columns.Add("prefecture", typeof(string));
      dataTable.Columns.Add("city", typeof(string));

      dataTable.Rows.Add("Kanto", "Tokyo", "Setagaya");
      dataTable.Rows.Add("Kanto", "Tokyo", "Shibuya");
      dataTable.Rows.Add("Kanto", "Tokyo", "Nakano");
      dataTable.Rows.Add("Kanto", "Kanagawa", "Yokohama");
      dataTable.Rows.Add("Kanto", "Kanagawa", "Kawasaki");
      dataTable.Rows.Add("Kanto", "Saitama", "Saitama");
      dataTable.Rows.Add("Kanto", "Saitama", "Fukaya");
      dataTable.Rows.Add("Kanto", "Saitama", "Koshigaya");
      dataTable.Rows.Add("Kanto", "Saitama", "Kawaguchi");
      dataTable.Rows.Add("Kyushu", "Fukuoka", "Fukuoka");
      dataTable.Rows.Add("Kyushu", "Nagasaki", "Nagasaki");
      dataTable.Rows.Add("Kyushu", "Kagoshima", "Kagoshima");

      var resultDataTable = dataTable.AsEnumerable().Where(x => x["prefecture"].ToString() == "Tokyo").AsDataView();
      this.dataGridView1.DataSource = resultDataTable;

      this.label1.Text = "Done!";
    }
  }
}

出力結果

prefecture city
------------------
Tokyo      Setagaya
Tokyo      Shibuya
Tokyo      Nakano


関連記事

DataTable関連

DataTable ~ 基礎知識編 ~
https://blogs.yahoo.co.jp/dk521123/10415992.html
DataTable ~ 基本編 ~
https://blogs.yahoo.co.jp/dk521123/38002713.html
DataTable ~ あれこれ編 ~
https://blogs.yahoo.co.jp/dk521123/20413895.html
DataTable ~ DISTINCT / 重複した値を省くには... ~
https://blogs.yahoo.co.jp/dk521123/14321146.html
DataTable ~ 重複を気にせずカウントするには... ~
https://blogs.yahoo.co.jp/dk521123/31382607.html
DataSet / DataTable ~ データテーブルのソート ~
https://blogs.yahoo.co.jp/dk521123/15231236.html
DataSet と TableAdapter について
https://blogs.yahoo.co.jp/dk521123/10415992.html