DataTableExtensions.AsEnumerable(DataTable) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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)
매개 변수
반환
IEnumerable<T> 개체이며, 제네릭 매개 변수 T
는 DataRow입니다.
예외
소스 DataTable이 null
인 경우
예제
다음 샘플에서 메서드는 DisplayProducts
라는 ProductName
DataColumn이 포함된 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(언어 통합 쿼리) 쿼리는 IEnumerable<T> 인터페이스 또는 IQueryable 인터페이스를 구현하는 데이터 원본에서 작동합니다. 클래스는 DataTable 두 인터페이스를 구현하지 않으므로 LINQ 쿼리의 절에서 From
를 원본으로 사용 DataTable 하려면 메서드를 호출 AsEnumerable 해야 합니다. 개체를 반환하여 사용자 지정 도메인별 연산자(예: CopyToDataTable)를 IEnumerable<T> 가져올 수도 있습니다.
메서드에서 반환된 열거 가능한 개체는 메서드를 AsEnumerable 생성한 에 DataTable 영구적으로 바인딩됩니다. 메서드에 대한 여러 호출은 AsEnumerable 모두 원본 DataTable에 바인딩된 여러 독립 쿼리 가능한 개체를 반환합니다.
적용 대상
.NET