步步为营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
作者:介绍 ·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 />"; }
运行结果silverlightLast - 返回集合中的最后一个元素;不延迟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 />"; }
运行结果ssrsElementAt - 返回集合中指定索引的元素;不延迟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 />"; }
运行结果cssContains - 判断集合中是否包含有某一元素;不延迟
/// <summary> /// Contains - 判断集合中是否包含有某一元素;不延迟 /// </summary> void Summary_Contains() { bool b = (from a in _ary select a).Contains( "javascript"); result.InnerHtml += b.ToString() + "<br />"; result.InnerHtml += "<br />"; }
运行结果TrueAny - 判断集合中是否有元素满足某一条件;不延迟
/// <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 />"; }
运行结果TrueAll - 判断集合中是否所有元素都满足某一条件;不延迟
/// <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 />"; }
运行结果FalseCount - 返回集合中的元素个数,返回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
本文出自 “” 博客,请务必保留此出处