DataTableExtensions.AsEnumerable(DataTable) 메서드

정의

IEnumerable<T> 제네릭 매개 변수 T 가 있는 개체를 반환합니다DataRow. 이 개체는 LINQ 식 또는 메서드 쿼리에서 사용할 수 있습니다.

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 입니다.

반품

IEnumerable<T> 제네릭 매개 변수 T 가 있는 개체입니다DataRow.

예외

소스 DataTable 는 .입니다 null.

예제

다음 샘플 DisplayProducts 에서 메서드는 이름이 ProductNameDataColumn인 DataTable을 수신하고 값을 추출 ProductName 한 다음 값을 출력합니다.

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 쿼리) 쿼리는 IEnumerable<T> 인터페이스 또는 IQueryable 인터페이스를 구현하는 데이터 원본을 이용하여 작동합니다. 클래스는 DataTable 두 인터페이스 중 하나를 구현하지 않으므로 LINQ 쿼리 절에서 AsEnumerable 소스로 사용하기 DataTable 위해 메서드를 호출 From 해야 합니다. 개체를 반환하여 사용자 지정 도메인별 연산자(예: CopyToDataTable)를 가져올 수도 있습니다 IEnumerable<T> .

메서드에서 반환된 AsEnumerable 열거 가능한 개체는 생성된 개체에 DataTable 영구적으로 바인딩됩니다. 메서드에 대한 여러 호출은 모두 원본AsEnumerableDataTable 바인딩된 여러 독립 쿼리 가능한 개체를 반환합니다.

적용 대상