步步为营VS 2008 + .NET 3.5(7) - LINQ查询操作符之First、FirstOrDefault、Last、LastOrDefault

[索引页]
[源码下载]


步步为营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
 
未完待续>>



OK
[源码下载]
 

你可能感兴趣的:(net,LINQ,操作符,first,last)