DataTableExtensions.AsEnumerable(DataTable) Metod

Definition

Returnerar ett IEnumerable<T> objekt där den generiska parametern T är DataRow. Det här objektet kan användas i ett LINQ-uttryck eller en metodfråga.

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)

Parametrar

source
DataTable

DataTable Källan som ska räknas upp.

Returer

Ett IEnumerable<T> objekt där den generiska parametern T är DataRow.

Undantag

Källan DataTable är null.

Exempel

I följande exempel DisplayProducts tar metoden emot en DataTable som innehåller en DataColumn med namnet ProductName, extraherar ProductName värdena och skriver sedan ut värdena.

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

Kommentarer

Language-Integrated LINQ-frågor fungerar på datakällor som implementerar IEnumerable<T>-gränssnittet eller IQueryable-gränssnittet. Klassen DataTable implementerar inte något av gränssnitten AsEnumerable , så du måste anropa metoden för att använda DataTable som källa i -satsen i From en LINQ-fråga. Du kan också hämta anpassade, domänspecifika operatorer, till exempel CopyToDataTable, genom att returnera ett IEnumerable<T> objekt.

Det uppräkningsbara objekt som returneras av AsEnumerable metoden är permanent bundet DataTable till det som skapade det. Flera anrop till AsEnumerable metoden returnerar flera oberoende frågebara objekt som alla är bundna till källan DataTable.

Gäller för