C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Types: The DataTable in the example has cells with types of int, string and DateTime.
Foreach: The example uses the foreach-loop. In the statement list it assigns variables to the results of the Field extension method.
DataTable Foreach LoopTip: The Field extension method receives a type parameter. It has several parameter list overloads.
ExtensionAssignments: The weight, name, code, and date variables are assigned to the results of the Field method with different parameters.
C# program that uses DataRow Field extension method
using System;
using System.Data;
class Program
{
static void Main()
{
//
// Loop over DataTable rows and call the Field extension method.
//
foreach (DataRow row in GetTable().Rows)
{
// Get first field by column index.
int weight = row.Field<int>(0);
// Get second field by column name.
string name = row.Field<string>("Name");
// Get third field by column index.
string code = row.Field<string>(2);
// Get fourth field by column name.
DateTime date = row.Field<DateTime>("Date");
// Display the fields.
Console.WriteLine("{0} {1} {2} {3}", weight, name, code, date);
}
}
static DataTable GetTable()
{
DataTable table = new DataTable(); // Create DataTable
table.Columns.Add("Weight", typeof(int)); // Add four columns
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Code", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
table.Rows.Add(57, "Koko", "A", DateTime.Now); // Add five rows
table.Rows.Add(130, "Fido", "B", DateTime.Now);
table.Rows.Add(92, "Alex", "C", DateTime.Now);
table.Rows.Add(25, "Charles", "D", DateTime.Now);
table.Rows.Add(7, "Candy", "E", DateTime.Now);
return table;
}
}
Output
57 Koko A 7/14/2009 6:20:48 AM
130 Fido B 7/14/2009 6:20:48 AM
92 Alex C 7/14/2009 6:20:48 AM
25 Charles D 7/14/2009 6:20:48 AM
7 Candy E 7/14/2009 6:20:48 AM
Tip: A type parameter indicates what type (such as int or string) you want the method to cast the result to.
Generic Class, MethodNote: The second parameter list indicates the name or location of the field by its column identifier.
And: When you use the methods such as Field in this class, the metadata loader will store this additional DLL in memory.
Info: Field() will internally invoke a generic method that validates the parameter. It then uses a generic method to unbox the object.