49 lines
No EOL
1.8 KiB
C#
49 lines
No EOL
1.8 KiB
C#
using System;
|
|
using System.Text;
|
|
using System.Data;
|
|
using System.Collections.Generic;
|
|
|
|
namespace ExtensionMethods
|
|
{
|
|
/// <summary>
|
|
/// <para>Add extensions to <c><see cref="DataTable"/></c></para>
|
|
/// </summary>
|
|
public static class DataTableExtensions
|
|
{
|
|
/// <summary>
|
|
/// <para>Converts the first column of the specified <paramref name="dataTable"/> to a <see cref="List<T>"/></para>
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="dataTable"></param>
|
|
/// <returns></returns>
|
|
public static List<T> ToList<T>(this DataTable dataTable)
|
|
{
|
|
return ToList<T>(dataTable, 0);
|
|
}
|
|
/// <summary>
|
|
/// <para>Converts the column with the specified <paramref name="columnName"/> of the specified <paramref name="dataTable"/> to a <see cref="List<T>"/></para>
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="dataTable"></param>
|
|
/// <param name="columnName">Name of the column that shall be converted</param>
|
|
/// <returns></returns>
|
|
public static List<T> ToList<T>(this DataTable dataTable, string columnName)
|
|
{
|
|
return ToList<T>(dataTable, dataTable.Columns.IndexOf(columnName));
|
|
}
|
|
/// <summary>
|
|
/// <para>Converts the column with the specified <paramref name="columnIndex"/> of the specified <paramref name="dataTable"/> to a <see cref="List<T>"/></para>
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="dataTable"></param>
|
|
/// <param name="columnIndex">Index of the column that shall be converted</param>
|
|
/// <returns></returns>
|
|
public static List<T> ToList<T>(this DataTable dataTable, int columnIndex)
|
|
{
|
|
List<T> list = new List<T>(dataTable.Rows.Count);
|
|
foreach (DataRow row in dataTable.Rows)
|
|
list.Add((T)Convert.ChangeType(row[columnIndex], typeof(T)));
|
|
return list;
|
|
}
|
|
}
|
|
} |