• 7、步步为营VS 2008 + .NET 3.5(7) LINQ查询操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Count、LongCount、Sum、Min、Max、Average、Aggregate、Cast、DefaultIfEmpty、SequenceEqual、OfType、ToArray、ToList、ToDictionary


    [索引页]
    [源码下载]


    步步为营VS 2008 + .NET 3.5(7) - LINQ查询操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Count、LongCount、Sum、Min、Max、Average、Aggregate、Cast、DefaultIfEmpty、SequenceEqual、OfType、ToArray、ToList、ToDictionary


    作者:webabcd


    介绍
        ·First - 返回集合中的第一个元素;不延迟
        ·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟
        ·Last - 返回集合中的最后一个元素;不延迟
        ·LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)
        ·ElementAt - 返回集合中指定索引的元素;不延迟
        ·ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟
        ·Contains - 判断集合中是否包含有某一元素;不延迟
        ·Any - 判断集合中是否有元素满足某一条件;不延迟
        ·All - 判断集合中是否所有元素都满足某一条件;不延迟
        ·Count - 返回集合中的元素个数,返回int;不延迟
        ·LongCount - 返回集合中的元素个数,返回long;不延迟
        ·Sum - 集合应为数字类型集合,求其和;不延迟
        ·Min - 返回集合的最小值;不延迟
        ·Max - 返回集合的最大值;不延迟
        ·Average - 集合应为数字类型集合,求其平均值;不延迟
        ·Aggregate - 根据输入的表达式获取一个聚合值;不延迟
        ·Cast - 将集合转换为强类型集合;延迟
        ·DefaultIfEmpty - 查询结果为空则返回默认值;延迟
        ·SequenceEqual - 判断两个集合是否相同;不延迟
        ·OfType - 过滤集合中的指定类型;延迟
        ·ToArray - 将集合转换为数组;不延迟
        ·ToList - 将集合转换为List<T>集合;不延迟
        ·ToDictionary - 将集合转换为<K, V>集合;不延迟


    示例
    Summary3.aspx.cs
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Xml.Linq;

    using System.Collections.Generic;
    using DAL;

    public partial class LINQ_Summary3 : System.Web.UI.Page
    {
        NorthwindDataContext _ctx 
    = new NorthwindDataContext();
        
    string[] _ary = null;

        
    protected void Page_Load(object sender, EventArgs e)
        
    {
            _ary 
    = new string[] "asp.net""csharp""xhtml""css""javascript"
                
    "wcf""wpf""silverlight""linq""wf"
                
    "sqlserver""asp.net ajax""ssis""ssas""ssrs" }
    ;

            
    // First - 返回集合中的第一个元素;不延迟
            
    // FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟
            Summary_First_FirstOrDefault();

            
    // Last - 返回集合中的最后一个元素;不延迟
            
    // LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)
            Summary_Last_LastOrDefault();

            
    // ElementAt - 返回集合中指定索引的元素;不延迟
            
    // ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟
            Summary_ElementAt_ElementAtOrDefault();

            
    // Contains - 判断集合中是否包含有某一元素;不延迟
            Summary_Contains();

            
    // Any - 判断集合中是否有元素满足某一条件;不延迟
            Summary_Any();

            
    // All - 判断集合中是否所有元素都满足某一条件;不延迟
            Summary_All();

            
    // Count - 返回集合中的元素个数,返回int;不延迟
            
    // LongCount - 返回集合中的元素个数,返回long;不延迟
            Summary_Count_LongCount();

            
    // Sum - 集合应为数字类型集合,求其和;不延迟
            Summary_Sum();

            
    // Min - 返回集合的最小值;不延迟
            Summary_Min();

            
    // Max - 返回集合的最大值;不延迟
            Summary_Max();

            
    // Average - 集合应为数字类型集合,求其平均值;不延迟
            Summary_Average();

            
    // Aggregate - 根据输入的表达式获取一个聚合值;不延迟
            Summary_Aggregate();

            
    // Cast - 将集合转换为强类型集合;延迟
            Summary_Cast();

            
    // DefaultIfEmpty - 查询结果为空则返回默认值;延迟
            Summary_DefaultIfEmpty();

            
    // SequenceEqual - 判断两个集合是否相同;不延迟
            Summary_SequenceEqual();

            
    // OfType - 过滤集合中的指定类型;延迟
            Summary_OfType();

            
    // ToArray - 将集合转换为数组;不延迟
            Summary_ToArray();

            
    // ToList - 将集合转换为List<T>集合;不延迟
            Summary_ToList();

            
    // ToDictionary - 将集合转换为<K, V>集合;不延迟
            Summary_ToDictionary();
        }

    }

    First - 返回集合中的第一个元素;不延迟
    FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟
        /// <summary>
        
    /// First - 返回集合中的第一个元素;不延迟
        
    /// FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟
        
    /// </summary>

        void Summary_First_FirstOrDefault()
        
    {
            
    string s = (from a in _ary
                        select a).First(a 
    => a.StartsWith("s"));
            
    // string s = (from a in _ary
            
    //             select a).FirstOrDefault(a => a.StartsWith("xxx"));
            
    // s == null

            result.InnerHtml 
    += s + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    silverlight

    Last - 返回集合中的最后一个元素;不延迟
    LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)
        /// <summary>
        
    /// Last - 返回集合中的最后一个元素;不延迟
        
    /// LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)
        
    /// </summary>

        void Summary_Last_LastOrDefault()
        
    {
            
    string s = (from a in _ary
                        select a).Last(a 
    => a.StartsWith("s"));
            
    // string s = (from a in _ary
            
    //             select a).LastOrDefault(a => a.StartsWith("sss"));
            
    // s == null

            result.InnerHtml 
    += s + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    ssrs

    ElementAt - 返回集合中指定索引的元素;不延迟
    ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟
        /// <summary>
        
    /// ElementAt - 返回集合中指定索引的元素;不延迟
        
    /// ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟
        
    /// </summary>

        void Summary_ElementAt_ElementAtOrDefault()
        
    {
            
    string s = (from a in _ary
                        select a).ElementAt(
    3);
            
    // string s = (from a in _ary
            
    //             select a).ElementAtOrDefault(1000);
            
    // s == null

            result.InnerHtml 
    += s + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    css

    Contains - 判断集合中是否包含有某一元素;不延迟
        /// <summary>
        
    /// Contains - 判断集合中是否包含有某一元素;不延迟
        
    /// </summary>

        void Summary_Contains()
        
    {
            
    bool b = (from a in _ary
                      select a).Contains(
    "javascript");

            result.InnerHtml 
    += b.ToString() + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    True

    Any - 判断集合中是否有元素满足某一条件;不延迟
        /// <summary>
        
    /// Any - 判断集合中是否有元素满足某一条件;不延迟
        
    /// </summary>

        void Summary_Any()
        
    {
            
    bool b = (from a in _ary
                      select a).Any(p 
    => p.Length > 10);

            result.InnerHtml 
    += b.ToString() + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    True

    All - 判断集合中是否所有元素都满足某一条件;不延迟
        /// <summary>
        
    /// All - 判断集合中是否所有元素都满足某一条件;不延迟
        
    /// </summary>

        void Summary_All()
        
    {
            
    bool b = (from a in _ary
                      select a).All(p 
    => p.Length > 10);

            result.InnerHtml 
    += b.ToString() + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    False

    Count - 返回集合中的元素个数,返回int;不延迟
    LongCount - 返回集合中的元素个数,返回long;不延迟
        /// <summary>
        
    /// Count - 返回集合中的元素个数,返回int;不延迟
        
    /// LongCount - 返回集合中的元素个数,返回long;不延迟
        
    /// </summary>

        void Summary_Count_LongCount()
        
    {
            
    int i = (from a in _ary
                     select a).Count(p 
    => p.Length > 10);
            
    // long i = (from a in _ary
            
    //           select a).LongCount(p => p.Length > 10);

            result.InnerHtml 
    += i.ToString() + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    2

    Sum - 集合应为数字类型集合,求其和;不延迟
        /// <summary>
        
    /// Sum - 集合应为数字类型集合,求其和;不延迟
        
    /// </summary>

        void Summary_Sum()
        
    {
            
    int i = (from a in _ary
                     select a.Length).Sum();

            result.InnerHtml 
    += i.ToString() + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    87

    Min - 返回集合的最小值;不延迟
        /// <summary>
        
    /// Min - 返回集合的最小值;不延迟
        
    /// </summary>

        void Summary_Min()
        
    {
            
    int i = (from a in _ary
                     select a.Length).Min();

            result.InnerHtml 
    += i.ToString() + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    2

    Max - 返回集合的最大值;不延迟
        /// <summary>
        
    /// Max - 返回集合的最大值;不延迟
        
    /// </summary>

        void Summary_Max()
        
    {
            
    int i = (from a in _ary
                     select a.Length).Max();

            result.InnerHtml 
    += i.ToString() + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    12

    Average - 集合应为数字类型集合,求其平均值;不延迟
        /// <summary>
        
    /// Average - 集合应为数字类型集合,求其平均值;不延迟
        
    /// </summary>

        void Summary_Average()
        
    {
            
    double d = (from a in _ary
                        select a.Length).Average();

            result.InnerHtml 
    += d.ToString() + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    5.8

    Aggregate - 根据输入的表达式获取一个聚合值;不延迟
        /// <summary>
        
    /// Aggregate - 根据输入的表达式获取一个聚合值;不延迟
        
    /// </summary>

        void Summary_Aggregate()
        
    {
            
    // 以下算法的Aggregate相当于Sum
            double d = (from a in _ary
                        select a.Length).Aggregate((x, y) 
    => x + y);

            result.InnerHtml 
    += d.ToString() + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    87

    Cast - 将集合转换为强类型集合;延迟
        /// <summary>
        
    /// Cast - 将集合转换为强类型集合;延迟
        
    /// </summary>

        void Summary_Cast()
        
    {
            ArrayList al 
    = new ArrayList();
            al.Add(
    "asp.net");
            al.Add(
    "csharp");
            al.Add(
    "xhtml");

            var list 
    = al.Cast<string>();

            
    foreach (string s in list)
            
    {
                result.InnerHtml 
    += s + "<br />";
            }

            result.InnerHtml 
    += "<br />";
        }
    运行结果
    asp.net
    csharp
    xhtml

    DefaultIfEmpty - 查询结果为空则返回默认值;延迟
        /// <summary>
        
    /// DefaultIfEmpty - 查询结果为空则返回默认值;延迟
        
    /// </summary>

        void Summary_DefaultIfEmpty()
        
    {
            var list 
    = (from a in _ary
                        where a.Length 
    > 100
                        select a).DefaultIfEmpty(
    "xxx");

            
    foreach (string s in list)
            
    {
                result.InnerHtml 
    += s + "<br />";
            }

            result.InnerHtml 
    += "<br />";
        }
    运行结果
    xxx

    SequenceEqual - 判断两个集合是否相同;不延迟
        /// <summary>
        
    /// SequenceEqual - 判断两个集合是否相同;不延迟
        
    /// </summary>

        void Summary_SequenceEqual()
        
    {
            
    bool b = (from a in _ary
                      where a.Length 
    > 10
                      select a).SequenceEqual(from a 
    in _ary
                                              where a.Length 
    > 10
                                              select a);

            result.InnerHtml 
    += b.ToString() + "<br />";
            result.InnerHtml 
    += "<br />";
        }
    运行结果
    True

    OfType - 过滤集合中的指定类型;延迟
        /// <summary>
        
    /// OfType - 过滤集合中的指定类型;延迟
        
    /// </summary>

        void Summary_OfType()
        
    {
            
    object[] objects = 1"a"2"b"3"c" };

            var list 
    = objects.OfType<string>();

            
    foreach (string s in list)
            
    {
                result.InnerHtml 
    += s + "<br />";
            }

            result.InnerHtml 
    += "<br />";
        }
    运行结果
    a
    b
    c

    ToArray - 将集合转换为数组;不延迟
        /// <summary>
        
    /// ToArray - 将集合转换为数组;不延迟
        
    /// </summary>

        void Summary_ToArray()
        
    {
            
    string[] ary = (from p in _ctx.Products
                            where p.ProductName.Length 
    > 30
                            select p.ProductName).ToArray();

            
    foreach (string s in ary)
            
    {
                result.InnerHtml 
    += s + "<br />";
            }

            result.InnerHtml 
    += "<br />";
        }
    运行结果
    Jack's New England Clam Chowder
    Louisiana Fiery Hot Pepper Sauce
    Original Frankfurter grüne So?e
    Uncle Bob's Organic Dried Pears

    ToList - 将集合转换为List<T>集合;不延迟
        /// <summary>
        
    /// ToList - 将集合转换为List<T>集合;不延迟
        
    /// </summary>

        void Summary_ToList()
        
    {
            var list 
    = (from a in _ary
                        where a.Length 
    > 10
                        select a).ToList();

            
    foreach (string s in list)
            
    {
                result.InnerHtml 
    += s + "<br />";
            }

            result.InnerHtml 
    += "<br />";
        }
    运行结果
    silverlight
    asp.net ajax

    ToDictionary - 将集合转换为<K, V>集合;不延迟
        /// <summary>
        
    /// ToDictionary - 将集合转换为<K, V>集合;不延迟
        
    /// </summary>

        void Summary_ToDictionary()
        
    {
            var dic 
    = (from p in _ctx.Products
                       where p.ProductName.Length 
    > 30
                       select p).ToDictionary(p 
    => p.ProductID);

            
    foreach (var p in dic)
            
    {
                result.InnerHtml 
    += p.Key + "" + p.Value.ProductName + "<br />";
            }

            result.InnerHtml 
    += "<br />";
        }
    运行结果
    7:Uncle Bob's Organic Dried Pears
    41:Jack's New England Clam Chowder
    65:Louisiana Fiery Hot Pepper Sauce
    77:Original Frankfurter grüne So?e


    OK
    [源码下载]
  • 相关阅读:
    Android 屏幕实现水龙头事件
    高速排序算法
    hdu2993坡dp+二进制搜索
    如何设计接口?
    virtio-netdev 发送数据包
    android-sdk-windows下载版
    FusionCharts简明教程(一)---建立FusionCharts图形
    strcpy_s与strcpy对照
    安全博客
    图片相关
  • 原文地址:https://www.cnblogs.com/dajiang02/p/1359914.html
Copyright © 2020-2023  润新知