from:http://www.cnblogs.com/webabcd/archive/2007/10/17/926855.html
步步为营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
@H_616_36@@H_616_36@作者:webabcd@H_616_36@@H_616_36@@H_616_36@介绍@H_616_36@ ·First - 返回集合中的第一个元素;不延迟@H_616_36@ ·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟@H_616_36@ ·Last - 返回集合中的最后一个元素;不延迟@H_616_36@ ·LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)@H_616_36@ ·ElementAt - 返回集合中指定索引的元素;不延迟@H_616_36@ ·ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟@H_616_36@ ·Contains - 判断集合中是否包含有某一元素;不延迟@H_616_36@ ·Any - 判断集合中是否有元素满足某一条件;不延迟@H_616_36@ ·All - 判断集合中是否所有元素都满足某一条件;不延迟@H_616_36@ ·Count - 返回集合中的元素个数,返回int;不延迟@H_616_36@ ·LongCount - 返回集合中的元素个数,返回long;不延迟@H_616_36@ ·Sum - 集合应为数字类型集合,求其和;不延迟@H_616_36@ ·Min - 返回集合的最小值;不延迟@H_616_36@ ·Max - 返回集合的最大值;不延迟@H_616_36@ ·Average - 集合应为数字类型集合,求其平均值;不延迟@H_616_36@ ·Aggregate - 根据输入的表达式获取一个聚合值;不延迟@H_616_36@ ·Cast - 将集合转换为强类型集合;延迟@H_616_36@ ·DefaultIfEmpty - 查询结果为空则返回默认值;延迟@H_616_36@ ·SequenceEqual - 判断两个集合是否相同;不延迟@H_616_36@ ·OfType - 过滤集合中的指定类型;延迟@H_616_36@ ·ToArray - 将集合转换为数组;不延迟@H_616_36@ ·ToList - 将集合转换为List<T>集合;不延迟@H_616_36@ ·ToDictionary - 将集合转换为<K,V>集合;不延迟@H_616_36@@H_616_36@@H_616_36@示例@H_616_36@SumMary3.aspx.cs@H_616_36@
using
System;@H_616_36@
using
System.Data;@H_616_36@
using
System.Configuration;@H_616_36@
using
System.Collections;@H_616_36@
using
System.Linq;@H_616_36@
using
System.Web;@H_616_36@
using
System.Web.Security;@H_616_36@
using
System.Web.UI;@H_616_36@
using
System.Web.UI.WebControls;@H_616_36@
using
System.Web.UI.WebControls.WebParts;@H_616_36@
using
System.Web.UI.HtmlControls;@H_616_36@
using
System.Xml.Linq;@H_616_36@@H_616_36@
using
System.Collections.Generic;@H_616_36@
using
DAL;@H_616_36@@H_616_36@
public
partial
class
LINQ_SumMary3 : System.Web.UI.Page@H_616_36@
{@H_616_36@ NorthwindDataContext _ctx = new NorthwindDataContext();@H_616_36@ String[] _ary = null;@H_616_36@@H_616_36@ protected void Page_Load(object sender, EventArgs E)@H_616_36@ {@H_616_36@ _ary = new String[] { "asp.net", "csharp", "xhtml", "css", "javascript", @H_616_36@ "wcf", "wpf", "silverlight", "linq", "wf", @H_616_36@ "sqlserver", "asp.net ajax", "ssis", "ssas", "ssrs" };@H_616_36@@H_616_36@ // First - 返回集合中的第一个元素;不延迟@H_616_36@ // FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟@H_616_36@ SumMary_First_FirstOrDefault();@H_616_36@@H_616_36@ // Last - 返回集合中的最后一个元素;不延迟@H_616_36@ // LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)@H_616_36@ SumMary_Last_LastOrDefault();@H_616_36@@H_616_36@ // ElementAt - 返回集合中指定索引的元素;不延迟@H_616_36@ // ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟@H_616_36@ SumMary_ElementAt_ElementAtOrDefault();@H_616_36@@H_616_36@ // Contains - 判断集合中是否包含有某一元素;不延迟@H_616_36@ SumMary_Contains();@H_616_36@@H_616_36@ // Any - 判断集合中是否有元素满足某一条件;不延迟@H_616_36@ SumMary_Any();@H_616_36@@H_616_36@ // All - 判断集合中是否所有元素都满足某一条件;不延迟@H_616_36@ SumMary_All();@H_616_36@@H_616_36@ // Count - 返回集合中的元素个数,返回int;不延迟@H_616_36@ // LongCount - 返回集合中的元素个数,返回long;不延迟@H_616_36@ SumMary_Count_LongCount();@H_616_36@@H_616_36@ // Sum - 集合应为数字类型集合,求其和;不延迟@H_616_36@ SumMary_sum();@H_616_36@@H_616_36@ // Min - 返回集合的最小值;不延迟@H_616_36@ SumMary_Min();@H_616_36@@H_616_36@ // Max - 返回集合的最大值;不延迟@H_616_36@ SumMary_Max();@H_616_36@@H_616_36@ // Average - 集合应为数字类型集合,求其平均值;不延迟@H_616_36@ SumMary_Average();@H_616_36@@H_616_36@ // Aggregate - 根据输入的表达式获取一个聚合值;不延迟@H_616_36@ SumMary_Aggregate();@H_616_36@@H_616_36@ // Cast - 将集合转换为强类型集合;延迟@H_616_36@ SumMary_Cast();@H_616_36@@H_616_36@ // DefaultIfEmpty - 查询结果为空则返回默认值;延迟@H_616_36@ SumMary_DefaultIfEmpty();@H_616_36@@H_616_36@ // SequenceEqual - 判断两个集合是否相同;不延迟@H_616_36@ SumMary_SequenceEqual();@H_616_36@@H_616_36@ // OfType - 过滤集合中的指定类型;延迟@H_616_36@ SumMary_OfType();@H_616_36@@H_616_36@ // ToArray - 将集合转换为数组;不延迟@H_616_36@ SumMary_ToArray();@H_616_36@@H_616_36@ // ToList - 将集合转换为List<T>集合;不延迟@H_616_36@ SumMary_ToList();@H_616_36@@H_616_36@ // ToDictionary - 将集合转换为<K, V>集合;不延迟@H_616_36@ SumMary_ToDictionary();@H_616_36@ }@H_616_36@}
@H_616_36@First - 返回集合中的第一个元素;不延迟@H_616_36@FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟@H_616_36@
/**/
/// <sumMary>@H_616_36@ First - 返回集合中的第一个元素;不延迟@H_616_36@ FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟@H_616_36@ </sumMary>
@H_
616_36@
@H_
673_1171@void
SumMary_First_FirstOrDefault()@H_616_36@
{@H_616_36@ @H_673_1171@String s = (from a @H_
673_1171@in
_ary@H_616_36@ SELEct a).First(a => a.StartsWith("s));@H_616_36@ // String s = (from a in _ary@H_616_36@ SELEct a).FirstOrDefault(a => a.StartsWith("xxx"));@H_616_36@ s == null@H_616_36@@H_616_36@ result.InnerHtml +=+ <br />;@H_616_36@ result.InnerHtml ;@H_616_36@ }
运行结果@H_616_36@silverlight@H_616_36@@H_616_36@Last - 返回集合中的最后一个元素;不延迟@H_616_36@LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)@H_616_36@
/**/
Last - 返回集合中的最后一个元素;不延迟@H_616_36@ LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)@H_616_36@ SumMary_Last_LastOrDefault()@H_616_36@
_ary@H_616_36@ SELEct a).Last(a SELEct a).LastOrDefault(a => a.StartsWith("sss"));@H_616_36@ ;@H_616_36@ }
运行结果@H_616_36@ssrs@H_616_36@@H_616_36@ElementAt - 返回集合中指定索引的元素;不延迟@H_616_36@ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟@H_616_36@
/**/
ElementAt - 返回集合中指定索引的元素;不延迟@H_616_36@ ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟@H_616_36@ SumMary_ElementAt_ElementAtOrDefault()@H_616_36@
_ary@H_616_36@ SELEct a).ElementAt(3);@H_616_36@ SELEct a).ElementAtOrDefault(1000);@H_616_36@ ;@H_616_36@ }
运行结果@H_616_36@css@H_616_36@@H_616_36@Contains - 判断集合中是否包含有某一元素;不延迟@H_616_36@
/**/
Contains - 判断集合中是否包含有某一元素;不延迟@H_616_36@ SumMary_Contains()@H_616_36@
@H_673_1171@bool b _ary@H_616_36@ SELEct a).Contains(javascript);@H_616_36@@H_616_36@ result.InnerHtml b.ToString() ;@H_616_36@ }
运行结果@H_616_36@True@H_616_36@@H_616_36@Any - 判断集合中是否有元素满足某一条件;不延迟@H_616_36@
@H_
944_1613@/
**/
Any - 判断集合中是否有元素满足某一条件;不延迟@H_616_36@ SumMary_Any()@H_616_36@
_ary@H_616_36@ SELEct a).Any(p p.Length >10;@H_616_36@ }
运行结果@H_616_36@True@H_616_36@@H_616_36@All - 判断集合中是否所有元素都满足某一条件;不延迟@H_616_36@
运行结果@H_616_36@false@H_616_36@@H_616_36@Count - 返回集合中的元素个数,返回int;不延迟@H_616_36@LongCount - 返回集合中的元素个数,返回long;不延迟@H_616_36@
/**/
@H_471_1
772@
Count - 返回集合中的元素个数,返回int;不延迟@H_616_36@ LongCount - 返回集合中的元素个数,返回long;不延迟@H_616_36@ SumMary_Count_LongCount()@H_616_36@
@H_673_1171@int i _ary@H_616_36@ SELEct a).Count(p long i = (from a in _ary@H_616_36@ SELEct a).LongCount(p => p.Length > 10); i.ToString() ;@H_616_36@ }
运行结果@H_616_36@2@H_616_36@@H_616_36@Sum - 集合应为数字类型集合,求其和;不延迟@H_616_36@
运行结果@H_616_36@87@H_616_36@@H_616_36@@H_143_20@min - 返回集合的最小值;不延迟@H_616_36@
运行结果@H_616_36@2@H_616_36@@H_616_36@@H_143_20@max - 返回集合的最大值;不延迟@H_616_36@
运行结果@H_616_36@12@H_616_36@@H_616_36@Average - 集合应为数字类型集合,求其平均值;不延迟@H_616_36@
/**/
Average - 集合应为数字类型集合,求其平均值;不延迟@H_616_36@ SumMary_Average()@H_616_36@
@H_673_1171@double d _ary@H_616_36@ SELEct a.Length).Average();@H_616_36@@H_616_36@ result.InnerHtml d.ToString() ;@H_616_36@ }
运行结果@H_616_36@5.8@H_616_36@@H_616_36@Aggregate - 根据输入的表达式获取一个聚合值;不延迟@H_616_36@@H_616_36@87@H_616_36@@H_616_36@Cast - 将集合转换为强类型集合;延迟@H_616_36@
/**/
Aggregate - 根据输入的表达式获取一个聚合值;不延迟@H_616_36@ SumMary_Aggregate()@H_616_36@
以下算法的Aggregate相当于Sum _ary@H_616_36@ SELEct a.Length).Aggregate((x, y) x y);@H_616_36@@H_616_36@ result.InnerHtml ;@H_616_36@ }
运行结果
运行结果@H_616_36@asp.net@H_616_36@csharp@H_616_36@xhtml@H_616_36@@H_616_36@DefaultIfEmpty - 查询结果为空则返回默认值;延迟@H_616_36@
/**/
DefaultIfEmpty - 查询结果为空则返回默认值;延迟@H_616_36@ SumMary_DefaultIfEmpty()@H_616_36@
{@H_616_36@ var list _ary@H_616_36@ where a.Length 100@H_616_36@ SELEct a).DefaultIfEmpty(xxx);@H_616_36@@H_616_36@ list)@H_616_36@ ;@H_616_36@ }
运行结果@H_616_36@xxx@H_616_36@@H_616_36@SequenceEqual - 判断两个集合是否相同;不延迟@H_616_36@
SequenceEqual - 判断两个集合是否相同;不延迟@H_
616_36@
SumMary_SequenceEqual()@H_616_36@
_ary@H_616_36@ where a.Length @H_616_36@ SELEct a).SequenceEqual(from a _ary@H_616_36@ where a.Length @H_616_36@ SELEct a);@H_616_36@@H_616_36@ result.InnerHtml ;@H_616_36@ }
运行结果@H_616_36@True@H_616_36@@H_616_36@OfType - 过滤集合中的指定类型;延迟@H_616_36@
运行结果@H_616_36@a@H_616_36@b@H_616_36@c@H_616_36@@H_616_36@ToArray - 将集合转换为数组;不延迟@H_616_36@
运行结果@H_616_36@Jack's New England Clam Chowder@H_616_36@Louisiana Fiery Hot Pepper Sauce@H_616_36@Original Frankfurter grüne So?e@H_616_36@Uncle Bob's Organic Dried Pears@H_616_36@@H_616_36@ToList - 将集合转换为List<T>集合;不延迟@H_616_36@
运行结果@H_616_36@silverlight@H_616_36@asp.net ajax@H_616_36@@H_616_36@ToDictionary - 将集合转换为<K,V>集合;不延迟@H_616_36@
运行结果@H_616_36@7:Uncle Bob's Organic Dried Pears41:Jack's New England Clam Chowder65:Louisiana Fiery Hot Pepper Sauce77:Original Frankfurter grüne So?e