英語で読む

次の方法で共有


DataTable.Select メソッド

定義

DataRow オブジェクトの配列を取得します。

オーバーロード

Select()

すべての DataRow オブジェクトの配列を取得します。

Select(String)

フィルター基準と一致するすべての DataRow オブジェクトの配列を取得します。

Select(String, String)

フィルター基準と一致するすべての DataRow オブジェクトの配列を、指定した並べ替え順で取得します。

Select(String, String, DataViewRowState)

フィルター基準と一致するすべての DataRow オブジェクトの配列を、指定した状態と一致する並べ替え順に取得します。

Select()

ソース:
DataTable.cs
ソース:
DataTable.cs
ソース:
DataTable.cs

すべての DataRow オブジェクトの配列を取得します。

public System.Data.DataRow[] Select ();

戻り値

DataRow オブジェクトの配列。

次の例では、 メソッドを使用して オブジェクトの DataRow 配列を Select 返します。

private void GetRows()
{
    // Get the DataTable of a DataSet.
    DataTable table = DataSet1.Tables["Suppliers"];
    DataRow[] rows = table.Select();

    // Print the value one column of each DataRow.
    for(int i = 0; i < rows.Length ; i++)
    {
        Console.WriteLine(rows[i]["CompanyName"]);
    }
}

注釈

適切な並べ替え順序を確保するには、 または Select(String, String, DataViewRowState)を使用して並べ替え条件をSelect(String, String)指定します。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Select(String)

ソース:
DataTable.cs
ソース:
DataTable.cs
ソース:
DataTable.cs

フィルター基準と一致するすべての DataRow オブジェクトの配列を取得します。

public System.Data.DataRow[] Select (string? filterExpression);
public System.Data.DataRow[] Select (string filterExpression);

パラメーター

filterExpression
String

行にフィルターをかけるために使用する基準。

戻り値

DataRow オブジェクトの配列。

次の例では、フィルター式を使用してオブジェクトの DataRow 配列を返します。

private void GetRowsByFilter()
{
    DataTable table = DataSet1.Tables["Orders"];
    // Presuming the DataTable has a column named Date.
    string expression;
    expression = "Date > #1/1/00#";
    DataRow[] foundRows;

    // Use the Select method to find all rows matching the filter.
    foundRows = table.Select(expression);

    // Print column 0 of each returned row.
    for(int i = 0; i < foundRows.Length; i ++)
    {
        Console.WriteLine(foundRows[i][0]);
    }
}

注釈

引数を filterExpression 作成するには、フィルターを作成するためにクラスのプロパティ値に DataColumn 適用されるの Expression と同じルールを使用します。

適切な並べ替え順序を確保するには、 または Select(String, String, DataViewRowState)を使用して並べ替え条件をSelect(String, String)指定します。

フィルターの列に null 値が含まれている場合、その列は結果の一部になりません。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Select(String, String)

ソース:
DataTable.cs
ソース:
DataTable.cs
ソース:
DataTable.cs

フィルター基準と一致するすべての DataRow オブジェクトの配列を、指定した並べ替え順で取得します。

public System.Data.DataRow[] Select (string? filterExpression, string? sort);
public System.Data.DataRow[] Select (string filterExpression, string sort);

パラメーター

filterExpression
String

行にフィルターをかけるために使用する基準。

sort
String

列と並べ替え方向を指定する文字列。

戻り値

フィルター式と一致する DataRow オブジェクトの配列。

次の例では、フィルター式を使用してオブジェクトの DataRow 配列を返します。

using System;
using System.Data;

public class A {

   public static void Main() {
      DataTable table = new DataTable("Orders");
      table.Columns.Add("OrderID", typeof(Int32));
      table.Columns.Add("OrderQuantity", typeof(Int32));
      table.Columns.Add("CompanyName", typeof(string));
      table.Columns.Add("Date", typeof(DateTime));

      DataRow newRow = table.NewRow();
      newRow["OrderID"] = 1;
      newRow["OrderQuantity"] = 3;
      newRow["CompanyName"] = "NewCompanyName";
      newRow["Date"] = "1979, 1, 31";

      // Add the row to the rows collection.
      table.Rows.Add(newRow);

      DataRow newRow2 = table.NewRow();
      newRow2["OrderID"] = 2;
      newRow2["OrderQuantity"] = 2;
      newRow2["CompanyName"] = "NewCompanyName1";
      table.Rows.Add(newRow2);

      DataRow newRow3 = table.NewRow();
      newRow3["OrderID"] = 3;
      newRow3["OrderQuantity"] = 2;
      newRow3["CompanyName"] = "NewCompanyName2";
      table.Rows.Add(newRow3);

      // Presuming the DataTable has a column named Date.
      string expression = "Date = '1/31/1979' or OrderID = 2";
      // string expression = "OrderQuantity = 2 and OrderID = 2";

      // Sort descending by column named CompanyName.
      string sortOrder = "CompanyName ASC";
      DataRow[] foundRows;

      // Use the Select method to find all rows matching the filter.
      foundRows = table.Select(expression, sortOrder);

      // Print column 0 of each returned row.
      for (int i = 0; i < foundRows.Length; i++)
         Console.WriteLine(foundRows[i][2]);
   }
}

注釈

引数をfilterExpression形成するには、クラスExpressionのプロパティ値を作成するために同じルールをDataColumn使用します。 引数では Sort 、クラスの文字列を作成するためにも同じ規則が Expression 使用されます。

フィルターの列に null 値が含まれている場合、その列は結果の一部になりません。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Select(String, String, DataViewRowState)

ソース:
DataTable.cs
ソース:
DataTable.cs
ソース:
DataTable.cs

フィルター基準と一致するすべての DataRow オブジェクトの配列を、指定した状態と一致する並べ替え順に取得します。

public System.Data.DataRow[] Select (string? filterExpression, string? sort, System.Data.DataViewRowState recordStates);
public System.Data.DataRow[] Select (string filterExpression, string sort, System.Data.DataViewRowState recordStates);

パラメーター

filterExpression
String

行にフィルターをかけるために使用する基準。

sort
String

列と並べ替え方向を指定する文字列。

recordStates
DataViewRowState

DataViewRowState 値のいずれか 1 つ。

戻り値

DataRow オブジェクトの配列。

次の例では、フィルター式とレコード状態を使用してオブジェクトの DataRow 配列を返します。

private static void GetRowsByFilter()
{
    DataTable customerTable = new DataTable("Customers");
    // Add columns
    customerTable.Columns.Add("id", typeof(int));
    customerTable.Columns.Add("name", typeof(string));

    // Set PrimaryKey
    customerTable.Columns[ "id" ].Unique = true;
    customerTable.PrimaryKey = new DataColumn[]
        { customerTable.Columns["id"] };

    // Add ten rows
    for(int id=1; id<=10; id++)
    {
        customerTable.Rows.Add(
            new object[] { id, string.Format("customer{0}", id) });
    }
    customerTable.AcceptChanges();

    // Add another ten rows
    for(int id=11; id<=20; id++)
    {
        customerTable.Rows.Add(
            new object[] { id, string.Format("customer{0}", id) });
    }

    string expression;
    string sortOrder;

    expression = "id > 5";
    // Sort descending by column named CompanyName.
    sortOrder = "name DESC";
    // Use the Select method to find all rows matching the filter.
    DataRow[] foundRows =
        customerTable.Select(expression, sortOrder,
        DataViewRowState.Added);

    PrintRows(foundRows, "filtered rows");

    foundRows = customerTable.Select();
    PrintRows(foundRows, "all rows");
}

private static void PrintRows(DataRow[] rows, string label)
{
    Console.WriteLine("\n{0}", label);
    if(rows.Length <= 0)
    {
        Console.WriteLine("no rows found");
        return;
    }
    foreach(DataRow row in rows)
    {
        foreach(DataColumn column in row.Table.Columns)
        {
            Console.Write("\table {0}", row[column]);
        }
        Console.WriteLine();
    }
}

注釈

引数をfilterExpression形成するには、クラスExpressionのプロパティ値を作成するために同じルールをDataColumn使用します。 引数では Sort 、クラスの文字列を作成するためにも同じ規則が Expression 使用されます。

フィルターの列に null 値が含まれている場合、その列は結果の一部になりません。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1