步步为营VS 2008 + .NET 3.5(7) - LINQ查询操作符之First、FirstOrDefault、Last、LastOrDefault-阿里云开发者社区

开发者社区> 技术小胖子> 正文

步步为营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
InBlock.gifusing System; 
InBlock.gifusing System.Data; 
InBlock.gifusing System.Configuration; 
InBlock.gifusing System.Collections; 
InBlock.gifusing System.Linq; 
InBlock.gifusing System.Web; 
InBlock.gifusing System.Web.Security; 
InBlock.gifusing System.Web.UI; 
InBlock.gifusing System.Web.UI.WebControls; 
InBlock.gifusing System.Web.UI.WebControls.WebParts; 
InBlock.gifusing System.Web.UI.HtmlControls; 
InBlock.gifusing System.Xml.Linq; 
InBlock.gif 
InBlock.gifusing System.Collections.Generic; 
InBlock.gifusing DAL; 
InBlock.gif 
InBlock.gifpublic partial class LINQ_Summary3 : System.Web.UI.Page 
InBlock.gif
InBlock.gif        NorthwindDataContext _ctx = new NorthwindDataContext(); 
InBlock.gif        string[] _ary = null
InBlock.gif 
InBlock.gif        protected void Page_Load(object sender, EventArgs e) 
InBlock.gif        { 
InBlock.gif                _ary = new string[] { "asp.net""csharp""xhtml""css""javascript",    
InBlock.gif                        "wcf""wpf""silverlight""linq""wf",    
InBlock.gif                        "sqlserver""asp.net ajax""ssis""ssas""ssrs" }; 
InBlock.gif 
InBlock.gif                // First - 返回集合中的第一个元素;不延迟 
InBlock.gif                // FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟 
InBlock.gif                Summary_First_FirstOrDefault(); 
InBlock.gif 
InBlock.gif                // Last - 返回集合中的最后一个元素;不延迟 
InBlock.gif                // LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值) 
InBlock.gif                Summary_Last_LastOrDefault(); 
InBlock.gif 
InBlock.gif                // ElementAt - 返回集合中指定索引的元素;不延迟 
InBlock.gif                // ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟 
InBlock.gif                Summary_ElementAt_ElementAtOrDefault(); 
InBlock.gif 
InBlock.gif                // Contains - 判断集合中是否包含有某一元素;不延迟 
InBlock.gif                Summary_Contains(); 
InBlock.gif 
InBlock.gif                // Any - 判断集合中是否有元素满足某一条件;不延迟 
InBlock.gif                Summary_Any(); 
InBlock.gif 
InBlock.gif                // All - 判断集合中是否所有元素都满足某一条件;不延迟 
InBlock.gif                Summary_All(); 
InBlock.gif 
InBlock.gif                // Count - 返回集合中的元素个数,返回int;不延迟 
InBlock.gif                // LongCount - 返回集合中的元素个数,返回long;不延迟 
InBlock.gif                Summary_Count_LongCount(); 
InBlock.gif 
InBlock.gif                // Sum - 集合应为数字类型集合,求其和;不延迟 
InBlock.gif                Summary_Sum(); 
InBlock.gif 
InBlock.gif                // Min - 返回集合的最小值;不延迟 
InBlock.gif                Summary_Min(); 
InBlock.gif 
InBlock.gif                // Max - 返回集合的最大值;不延迟 
InBlock.gif                Summary_Max(); 
InBlock.gif 
InBlock.gif                // Average - 集合应为数字类型集合,求其平均值;不延迟 
InBlock.gif                Summary_Average(); 
InBlock.gif 
InBlock.gif                // Aggregate - 根据输入的表达式获取一个聚合值;不延迟 
InBlock.gif                Summary_Aggregate(); 
InBlock.gif 
InBlock.gif                // Cast - 将集合转换为强类型集合;延迟 
InBlock.gif                Summary_Cast(); 
InBlock.gif 
InBlock.gif                // DefaultIfEmpty - 查询结果为空则返回默认值;延迟 
InBlock.gif                Summary_DefaultIfEmpty(); 
InBlock.gif 
InBlock.gif                // SequenceEqual - 判断两个集合是否相同;不延迟 
InBlock.gif                Summary_SequenceEqual(); 
InBlock.gif 
InBlock.gif                // OfType - 过滤集合中的指定类型;延迟 
InBlock.gif                Summary_OfType(); 
InBlock.gif 
InBlock.gif                // ToArray - 将集合转换为数组;不延迟 
InBlock.gif                Summary_ToArray(); 
InBlock.gif 
InBlock.gif                // ToList - 将集合转换为List<T>集合;不延迟 
InBlock.gif                Summary_ToList(); 
InBlock.gif 
InBlock.gif                // ToDictionary - 将集合转换为<K, V>集合;不延迟 
InBlock.gif                Summary_ToDictionary(); 
InBlock.gif        } 
InBlock.gif}
 
First - 返回集合中的第一个元素;不延迟
FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟
/// <summary> 
InBlock.gif        /// First - 返回集合中的第一个元素;不延迟 
InBlock.gif        /// FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟 
InBlock.gif        /// </summary> 
InBlock.gif        void Summary_First_FirstOrDefault() 
InBlock.gif        { 
InBlock.gif                string s = (from a in _ary 
InBlock.gif                                        select a).First(a => a.StartsWith("s")); 
InBlock.gif                // string s = (from a in _ary 
InBlock.gif                //                         select a).FirstOrDefault(a => a.StartsWith("xxx")); 
InBlock.gif                // s == null 
InBlock.gif 
InBlock.gif                result.InnerHtml += s + "<br />"
InBlock.gif                result.InnerHtml += "<br />"
InBlock.gif        }
 
运行结果
silverlight

Last - 返回集合中的最后一个元素;不延迟
LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)
/// <summary> 
InBlock.gif        /// Last - 返回集合中的最后一个元素;不延迟 
InBlock.gif        /// LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值) 
InBlock.gif        /// </summary> 
InBlock.gif        void Summary_Last_LastOrDefault() 
InBlock.gif        { 
InBlock.gif                string s = (from a in _ary 
InBlock.gif                                        select a).Last(a => a.StartsWith("s")); 
InBlock.gif                // string s = (from a in _ary 
InBlock.gif                //                         select a).LastOrDefault(a => a.StartsWith("sss")); 
InBlock.gif                // s == null 
InBlock.gif 
InBlock.gif                result.InnerHtml += s + "<br />"
InBlock.gif                result.InnerHtml += "<br />"
InBlock.gif        }
 
运行结果
ssrs

ElementAt - 返回集合中指定索引的元素;不延迟
ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟
/// <summary> 
InBlock.gif        /// ElementAt - 返回集合中指定索引的元素;不延迟 
InBlock.gif        /// ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟 
InBlock.gif        /// </summary> 
InBlock.gif        void Summary_ElementAt_ElementAtOrDefault() 
InBlock.gif        { 
InBlock.gif                string s = (from a in _ary 
InBlock.gif                                        select a).ElementAt(3); 
InBlock.gif                // string s = (from a in _ary 
InBlock.gif                //                         select a).ElementAtOrDefault(1000); 
InBlock.gif                // s == null 
InBlock.gif 
InBlock.gif                result.InnerHtml += s + "<br />"
InBlock.gif                result.InnerHtml += "<br />"
InBlock.gif        }
 
运行结果
css

Contains - 判断集合中是否包含有某一元素;不延迟
InBlock.gif /// <summary> 
InBlock.gif        /// Contains - 判断集合中是否包含有某一元素;不延迟 
InBlock.gif        /// </summary> 
InBlock.gif        void Summary_Contains() 
InBlock.gif        { 
InBlock.gif                bool b = (from a in _ary 
InBlock.gif                                    select a).Contains("javascript"); 
InBlock.gif 
InBlock.gif                result.InnerHtml += b.ToString() + "<br />"
InBlock.gif                result.InnerHtml += "<br />"
InBlock.gif        }
 
运行结果
True

Any - 判断集合中是否有元素满足某一条件;不延迟
InBlock.gif /// <summary> 
InBlock.gif        /// Any - 判断集合中是否有元素满足某一条件;不延迟 
InBlock.gif        /// </summary> 
InBlock.gif        void Summary_Any() 
InBlock.gif        { 
InBlock.gif                bool b = (from a in _ary 
InBlock.gif                                    select a).Any(p => p.Length > 10); 
InBlock.gif 
InBlock.gif                result.InnerHtml += b.ToString() + "<br />"
InBlock.gif                result.InnerHtml += "<br />"
InBlock.gif        }
 
运行结果
True

All - 判断集合中是否所有元素都满足某一条件;不延迟
InBlock.gif /// <summary> 
InBlock.gif        /// All - 判断集合中是否所有元素都满足某一条件;不延迟 
InBlock.gif        /// </summary> 
InBlock.gif        void Summary_All() 
InBlock.gif        { 
InBlock.gif                bool b = (from a in _ary 
InBlock.gif                                    select a).All(p => p.Length > 10); 
InBlock.gif 
InBlock.gif                result.InnerHtml += b.ToString() + "<br />"
InBlock.gif                result.InnerHtml += "<br />"
InBlock.gif        }
 
运行结果
False

Count - 返回集合中的元素个数,返回int;不延迟
LongCount - 返回集合中的元素个数,返回long;不延迟
/// <summary> 
InBlock.gif        /// Count - 返回集合中的元素个数,返回int;不延迟 
InBlock.gif        /// LongCount - 返回集合中的元素个数,返回long;不延迟 
InBlock.gif        /// </summary> 
InBlock.gif        void Summary_Count_LongCount() 
InBlock.gif        { 
InBlock.gif                int i = (from a in _ary 
InBlock.gif                                 select a).Count(p => p.Length > 10); 
InBlock.gif                // long i = (from a in _ary 
InBlock.gif                //                     select a).LongCount(p => p.Length > 10); 
InBlock.gif 
InBlock.gif                result.InnerHtml += i.ToString() + "<br />"
InBlock.gif                result.InnerHtml += "<br />"
InBlock.gif        }
 
运行结果
2
 
 




     本文转自webabcd 51CTO博客,原文链接:http://blog.51cto.com/webabcd/345005,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linq To Object标准操作符最强总结
Linq To Object标准操作符最强总结
8 0
《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理》——2.10 初始化缓冲区管理结构
本节书摘来自华章计算机《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理》一书中的第2章,第2.10节,作者:新设计团队著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1142 0
【最佳实践】使用 Elasticsearch SQL 实现数据查询
如何使用 Elasticsearch SQL 来对我们的数据进行查询。
2359 0
《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理》——2.9 初始化进程0
本节书摘来自华章计算机《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理》一书中的第2章,第2.9节,作者:新设计团队著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1469 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载