步步为营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
 
 




     本文转自webabcd 51CTO博客,原文链接:http://blog.51cto.com/webabcd/345005 ,如需转载请自行联系原作者
相关文章
|
开发框架 JavaScript .NET
asp.net中条件查询+分页
asp.net中条件查询+分页
|
8月前
|
XML 开发框架 .NET
.NET 9 中 LINQ 新增功能实操
.NET 9 中 LINQ 新增功能实操
|
9月前
|
开发框架 .NET 开发工具
.NET 9 中 LINQ 新增的功能
.NET 9 中 LINQ 新增的功能
|
11月前
|
开发框架 前端开发 算法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
158 0
|
11月前
|
SQL Oracle 关系型数据库
.NET 开源快捷的数据库文档查询和生成工具
【8月更文挑战第1天】推荐几款.NET开源数据库文档工具:1. DBDocumentor,支持多类型数据库,快速生成详尽文档;2. SqlDoc,界面简洁,自定义内容与格式;3. DBInfo,强大查询功能,支持多种导出格式。这些工具有效提升文档管理效率与质量。
141 0
效率提升利器:一个在线的.NET源码查询网站
效率提升利器:一个在线的.NET源码查询网站
119 0
|
7月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
163 5
|
10月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
169 7
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
330 0
|
10月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
180 0