# System.Data

``` diff
 namespace System.Data {
-    public static class DataRowComparer {
 {
-        public static DataRowComparer<DataRow> Default { get; }

-    }
-    public sealed class DataRowComparer<TRow> : IEqualityComparer<TRow> where TRow : DataRow {
 {
-        public static DataRowComparer<TRow> Default { get; }

-        public bool Equals(TRow leftRow, TRow rightRow);

-        public int GetHashCode(TRow row);

-    }
-    public static class DataRowExtensions {
 {
-        public static T Field<T>(this DataRow row, DataColumn column);

-        public static T Field<T>(this DataRow row, DataColumn column, DataRowVersion version);

-        public static T Field<T>(this DataRow row, int columnIndex);

-        public static T Field<T>(this DataRow row, int columnIndex, DataRowVersion version);

-        public static T Field<T>(this DataRow row, string columnName);

-        public static T Field<T>(this DataRow row, string columnName, DataRowVersion version);

-        public static void SetField<T>(this DataRow row, DataColumn column, T value);

-        public static void SetField<T>(this DataRow row, int columnIndex, T value);

-        public static void SetField<T>(this DataRow row, string columnName, T value);

-    }
-    public static class DataTableExtensions {
 {
-        public static EnumerableRowCollection<DataRow> AsEnumerable(this DataTable source);

-        public static DataTable CopyToDataTable<T>(this IEnumerable<T> source) where T : DataRow;

-        public static void CopyToDataTable<T>(this IEnumerable<T> source, DataTable table, LoadOption options) where T : DataRow;

-        public static void CopyToDataTable<T>(this IEnumerable<T> source, DataTable table, LoadOption options, FillErrorEventHandler errorHandler) where T : DataRow;

-    }
-    public abstract class EnumerableRowCollection : IEnumerable {
 {
-        IEnumerator System.Collections.IEnumerable.GetEnumerator();

-    }
-    public class EnumerableRowCollection<TRow> : EnumerableRowCollection, IEnumerable, IEnumerable<TRow> {
 {
-        public IEnumerator<TRow> GetEnumerator();

-        IEnumerator System.Collections.IEnumerable.GetEnumerator();

-    }
-    public static class EnumerableRowCollectionExtensions {
 {
-        public static EnumerableRowCollection<TResult> Cast<TResult>(this EnumerableRowCollection source);

-        public static OrderedEnumerableRowCollection<TRow> OrderBy<TRow, TKey>(this EnumerableRowCollection<TRow> source, Func<TRow, TKey> keySelector);

-        public static OrderedEnumerableRowCollection<TRow> OrderBy<TRow, TKey>(this EnumerableRowCollection<TRow> source, Func<TRow, TKey> keySelector, IComparer<TKey> comparer);

-        public static OrderedEnumerableRowCollection<TRow> OrderByDescending<TRow, TKey>(this EnumerableRowCollection<TRow> source, Func<TRow, TKey> keySelector);

-        public static OrderedEnumerableRowCollection<TRow> OrderByDescending<TRow, TKey>(this EnumerableRowCollection<TRow> source, Func<TRow, TKey> keySelector, IComparer<TKey> comparer);

-        public static EnumerableRowCollection<S> Select<TRow, S>(this EnumerableRowCollection<TRow> source, Func<TRow, S> selector);

-        public static OrderedEnumerableRowCollection<TRow> ThenBy<TRow, TKey>(this OrderedEnumerableRowCollection<TRow> source, Func<TRow, TKey> keySelector);

-        public static OrderedEnumerableRowCollection<TRow> ThenBy<TRow, TKey>(this OrderedEnumerableRowCollection<TRow> source, Func<TRow, TKey> keySelector, IComparer<TKey> comparer);

-        public static OrderedEnumerableRowCollection<TRow> ThenByDescending<TRow, TKey>(this OrderedEnumerableRowCollection<TRow> source, Func<TRow, TKey> keySelector);

-        public static OrderedEnumerableRowCollection<TRow> ThenByDescending<TRow, TKey>(this OrderedEnumerableRowCollection<TRow> source, Func<TRow, TKey> keySelector, IComparer<TKey> comparer);

-        public static EnumerableRowCollection<TRow> Where<TRow>(this EnumerableRowCollection<TRow> source, Func<TRow, bool> predicate);

-    }
-    public sealed class OrderedEnumerableRowCollection<TRow> : EnumerableRowCollection<TRow>

-    public abstract class TypedTableBase<T> : DataTable, IEnumerable, IEnumerable<T> where T : DataRow {
 {
-        protected TypedTableBase();

-        protected TypedTableBase(SerializationInfo info, StreamingContext context);

-        public EnumerableRowCollection<TResult> Cast<TResult>();

-        public IEnumerator<T> GetEnumerator();

-        IEnumerator System.Collections.IEnumerable.GetEnumerator();

-    }
-    public static class TypedTableBaseExtensions {
 {
-        public static EnumerableRowCollection<TRow> AsEnumerable<TRow>(this TypedTableBase<TRow> source) where TRow : DataRow;

-        public static TRow ElementAtOrDefault<TRow>(this TypedTableBase<TRow> source, int index) where TRow : DataRow;

-        public static OrderedEnumerableRowCollection<TRow> OrderBy<TRow, TKey>(this TypedTableBase<TRow> source, Func<TRow, TKey> keySelector) where TRow : DataRow;

-        public static OrderedEnumerableRowCollection<TRow> OrderBy<TRow, TKey>(this TypedTableBase<TRow> source, Func<TRow, TKey> keySelector, IComparer<TKey> comparer) where TRow : DataRow;

-        public static OrderedEnumerableRowCollection<TRow> OrderByDescending<TRow, TKey>(this TypedTableBase<TRow> source, Func<TRow, TKey> keySelector) where TRow : DataRow;

-        public static OrderedEnumerableRowCollection<TRow> OrderByDescending<TRow, TKey>(this TypedTableBase<TRow> source, Func<TRow, TKey> keySelector, IComparer<TKey> comparer) where TRow : DataRow;

-        public static EnumerableRowCollection<S> Select<TRow, S>(this TypedTableBase<TRow> source, Func<TRow, S> selector) where TRow : DataRow;

-        public static EnumerableRowCollection<TRow> Where<TRow>(this TypedTableBase<TRow> source, Func<TRow, bool> predicate) where TRow : DataRow;

-    }
 }
```

