DataTableExtensions.AsEnumerable(DataTable) DataTableExtensions.AsEnumerable(DataTable) DataTableExtensions.AsEnumerable(DataTable) DataTableExtensions.AsEnumerable(DataTable) Method

정의

반환을 IEnumerable<T> 개체는 제네릭 매개 변수 TDataRow합니다.Returns an IEnumerable<T> object, where the generic parameter T is DataRow. 이 개체는 LINQLINQ 식 또는 메서드 쿼리에 사용될 수 있습니다.This object can be used in a LINQLINQ expression or method query.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Data::EnumerableRowCollection<System::Data::DataRow ^> ^ AsEnumerable(System::Data::DataTable ^ source);
public static System.Data.EnumerableRowCollection<System.Data.DataRow> AsEnumerable (this System.Data.DataTable source);
static member AsEnumerable : System.Data.DataTable -> System.Data.EnumerableRowCollection<System.Data.DataRow>
<Extension()>
Public Function AsEnumerable (source As DataTable) As EnumerableRowCollection(Of DataRow)

매개 변수

source
DataTable DataTable DataTable DataTable

원본 DataTable 열거 가능 하도록 합니다.The source DataTable to make enumerable.

반환

IEnumerable<T> 개체는 제네릭 매개 변수 TDataRow합니다.An IEnumerable<T> object, where the generic parameter T is DataRow.

예외

예제

다음 샘플에서는 합니다 DisplayProducts 메서드 라는 DataColumn을 포함 하는 DataTable을 수신 ProductName, 추출는 ProductName 값 하 고 다음 값을 출력 합니다.In the following sample, the DisplayProducts method receives a DataTable that contains a DataColumn named ProductName, extracts the ProductName values and then prints the values.

using System;
using System.Data;

class Program {
   public void DisplayProducts(DataTable table) {
      var productNames = from products in table.AsEnumerable() select products.Field<string>("ProductName");
      Console.WriteLine("Product Names: ");
      foreach (string productName in productNames) {
         Console.WriteLine(productName);
      }
   }

   static void Main(string[] args) {
      DataTable table = new DataTable();
      table.Columns.Add("ID");
      table.Columns.Add("ProductName");

      table.Rows.Add("1", "Chai");
      table.Rows.Add("2", "Queso Cabrales");
      table.Rows.Add("3", "Tofu");

      Program inst = new Program();
      inst.DisplayProducts(table);
   }
}
Imports System.Console
Module Module1
   Public Sub DisplayProducts(ByVal table As DataTable)
      Dim productNames = From products In table.AsEnumerable() Select products("ProductName")
      WriteLine("Product Names: ")
      For Each productName In productNames
         WriteLine(productName)
       Next
   End Sub

   Sub Main()
      Dim table As DataTable = New DataTable()
      table.Columns.Add("ID")
      table.Columns.Add("ProductName")

      table.Rows.Add("1", "Chai")
      table.Rows.Add("2", "Queso Cabrales")
      table.Rows.Add("3", "Tofu")

      DisplayProducts(table)
   End Sub
End Module

설명

LINQ(Language-Integrated Query)Language-Integrated Query (LINQ) 쿼리를 구현 하는 데이터 소스에서 작동 합니다 IEnumerable<T> 인터페이스 또는 IQueryable 인터페이스입니다.queries work on data sources that implement the IEnumerable<T> interface or the IQueryable interface. DataTable 클래스를 호출 해야 하므로 두 인터페이스 중 하나를 구현 하지 않습니다는 AsEnumerable 메서드를 사용 하 여는 DataTable 원본으로는 From 절을 LINQLINQ 쿼리 합니다.The DataTable class does not implement either interface, so you must call the AsEnumerable method to use the DataTable as a source in the From clause of a LINQLINQ query. 사용자 지정, 도메인 특정 연산자와 같은 가져올 수도 있습니다 CopyToDataTable를 반환 하 여는 IEnumerable<T> 개체입니다.You can also obtain custom, domain-specific operators, such as CopyToDataTable, by returning an IEnumerable<T> object.

반환 하는 열거 가능한 개체를 AsEnumerable 메서드를 영구적으로 바인딩된는 DataTable 결과 생성 하는 합니다.The enumerable object returned by the AsEnumerable method is permanently bound to the DataTable that produced it. 여러 번 호출 하 여 AsEnumerable 메서드는 반환 여러 개의 독립적인 쿼리 가능 개체가 모든 소스에 바인딩된 DataTable합니다.Multiple calls to the AsEnumerable method will return multiple, independent queryable objects that are all bound to the source DataTable.

적용 대상