TypedTableBaseExtensions.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataSet / System / Data / TypedTableBaseExtensions.cs / 1305376 / TypedTableBaseExtensions.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
using System;
using System.Collections.Generic; 
using System.Linq;
using System.Linq.Expressions;
using System.Globalization;
using System.Diagnostics; 

namespace System.Data 
{ 
    /// 
    /// This static class defines the extension methods that add LINQ operator functionality 
    /// within IEnumerableDT and IOrderedEnumerableDT.
    /// 
    public static class TypedTableBaseExtensions
    { 
        /// 
        /// LINQ's Where operator for generic EnumerableRowCollection. 
        ///  
        public static EnumerableRowCollection Where(
                                                this TypedTableBase source, 
                                                Func predicate) where TRow : DataRow
        {
            DataSetUtil.CheckArgumentNull(source, "source");
            EnumerableRowCollection erc = new EnumerableRowCollection((DataTable)source); 
            return erc.Where(predicate);
        } 
 
        /// 
        /// LINQ's OrderBy operator for generic EnumerableRowCollection. 
        /// 
        public static OrderedEnumerableRowCollection OrderBy(
                                                        this TypedTableBase source,
                                                        Func keySelector) where TRow : DataRow 
        {
            DataSetUtil.CheckArgumentNull(source, "source"); 
            EnumerableRowCollection erc = new EnumerableRowCollection((DataTable)source); 
            return erc.OrderBy(keySelector);
        } 

        /// 
        /// LINQ's OrderBy operator for generic EnumerableRowCollection.
        ///  
        public static OrderedEnumerableRowCollection OrderBy(
                                                        this TypedTableBase source, 
                                                        Func keySelector, 
                                                        IComparer comparer) where TRow : DataRow
        { 
            DataSetUtil.CheckArgumentNull(source, "source");
            EnumerableRowCollection erc = new EnumerableRowCollection((DataTable)source);
            return erc.OrderBy(keySelector, comparer);
        } 

        ///  
        /// LINQ's OrderByDescending operator for generic EnumerableRowCollection. 
        /// 
        public static OrderedEnumerableRowCollection OrderByDescending( 
                                                        this TypedTableBase source,
                                                        Func keySelector) where TRow : DataRow
        {
            DataSetUtil.CheckArgumentNull(source, "source"); 
            EnumerableRowCollection erc = new EnumerableRowCollection((DataTable)source);
            return erc.OrderByDescending(keySelector); 
        } 

        ///  
        /// LINQ's OrderByDescending operator for generic EnumerableRowCollection.
        /// 
        public static OrderedEnumerableRowCollection OrderByDescending(
                                                        this TypedTableBase source, 
                                                        Func keySelector,
                                                        IComparer comparer) where TRow : DataRow 
        { 
            DataSetUtil.CheckArgumentNull(source, "source");
            EnumerableRowCollection erc = new EnumerableRowCollection((DataTable)source); 
            return erc.OrderByDescending(keySelector, comparer);
        }

 
        /// 
        /// Executes a Select (Projection) on EnumerableDataTable. If the selector returns a different 
        /// type than the type of rows, then AsLinqDataView is disabled, and the returning EnumerableDataTable 
        /// represents an enumerable over the LINQ Query.
        ///  
        public static EnumerableRowCollection Select(
                                                this TypedTableBase source,
                                                Func selector) where TRow : DataRow
        { 
            DataSetUtil.CheckArgumentNull(source, "source");
            EnumerableRowCollection erc = new EnumerableRowCollection((DataTable)source); 
            return erc.Select(selector); 
        }
 



 
        /// 
        ///   This method returns a IEnumerable of TRow. 
        ///  
        /// 
        ///   The source DataTable to make enumerable. 
        /// 
        /// 
        ///   IEnumerable of datarows.
        ///  
        public static EnumerableRowCollection AsEnumerable(this TypedTableBase source) where TRow : DataRow
        { 
            DataSetUtil.CheckArgumentNull(source, "source"); 
            return new EnumerableRowCollection(source as DataTable);
        } 



    } //end class 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
using System;
using System.Collections.Generic; 
using System.Linq;
using System.Linq.Expressions;
using System.Globalization;
using System.Diagnostics; 

namespace System.Data 
{ 
    /// 
    /// This static class defines the extension methods that add LINQ operator functionality 
    /// within IEnumerableDT and IOrderedEnumerableDT.
    /// 
    public static class TypedTableBaseExtensions
    { 
        /// 
        /// LINQ's Where operator for generic EnumerableRowCollection. 
        ///  
        public static EnumerableRowCollection Where(
                                                this TypedTableBase source, 
                                                Func predicate) where TRow : DataRow
        {
            DataSetUtil.CheckArgumentNull(source, "source");
            EnumerableRowCollection erc = new EnumerableRowCollection((DataTable)source); 
            return erc.Where(predicate);
        } 
 
        /// 
        /// LINQ's OrderBy operator for generic EnumerableRowCollection. 
        /// 
        public static OrderedEnumerableRowCollection OrderBy(
                                                        this TypedTableBase source,
                                                        Func keySelector) where TRow : DataRow 
        {
            DataSetUtil.CheckArgumentNull(source, "source"); 
            EnumerableRowCollection erc = new EnumerableRowCollection((DataTable)source); 
            return erc.OrderBy(keySelector);
        } 

        /// 
        /// LINQ's OrderBy operator for generic EnumerableRowCollection.
        ///  
        public static OrderedEnumerableRowCollection OrderBy(
                                                        this TypedTableBase source, 
                                                        Func keySelector, 
                                                        IComparer comparer) where TRow : DataRow
        { 
            DataSetUtil.CheckArgumentNull(source, "source");
            EnumerableRowCollection erc = new EnumerableRowCollection((DataTable)source);
            return erc.OrderBy(keySelector, comparer);
        } 

        ///  
        /// LINQ's OrderByDescending operator for generic EnumerableRowCollection. 
        /// 
        public static OrderedEnumerableRowCollection OrderByDescending( 
                                                        this TypedTableBase source,
                                                        Func keySelector) where TRow : DataRow
        {
            DataSetUtil.CheckArgumentNull(source, "source"); 
            EnumerableRowCollection erc = new EnumerableRowCollection((DataTable)source);
            return erc.OrderByDescending(keySelector); 
        } 

        ///  
        /// LINQ's OrderByDescending operator for generic EnumerableRowCollection.
        /// 
        public static OrderedEnumerableRowCollection OrderByDescending(
                                                        this TypedTableBase source, 
                                                        Func keySelector,
                                                        IComparer comparer) where TRow : DataRow 
        { 
            DataSetUtil.CheckArgumentNull(source, "source");
            EnumerableRowCollection erc = new EnumerableRowCollection((DataTable)source); 
            return erc.OrderByDescending(keySelector, comparer);
        }

 
        /// 
        /// Executes a Select (Projection) on EnumerableDataTable. If the selector returns a different 
        /// type than the type of rows, then AsLinqDataView is disabled, and the returning EnumerableDataTable 
        /// represents an enumerable over the LINQ Query.
        ///  
        public static EnumerableRowCollection Select(
                                                this TypedTableBase source,
                                                Func selector) where TRow : DataRow
        { 
            DataSetUtil.CheckArgumentNull(source, "source");
            EnumerableRowCollection erc = new EnumerableRowCollection((DataTable)source); 
            return erc.Select(selector); 
        }
 



 
        /// 
        ///   This method returns a IEnumerable of TRow. 
        ///  
        /// 
        ///   The source DataTable to make enumerable. 
        /// 
        /// 
        ///   IEnumerable of datarows.
        ///  
        public static EnumerableRowCollection AsEnumerable(this TypedTableBase source) where TRow : DataRow
        { 
            DataSetUtil.CheckArgumentNull(source, "source"); 
            return new EnumerableRowCollection(source as DataTable);
        } 



    } //end class 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK