LINQ查询操作符
LINQ查询操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Coun
介绍
·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
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Xml.Linq;
usingSystem.Collections.Generic;
usingDAL;
publicpartialclassLINQ_Summary3:System.Web.UI.Page
{
NorthwindDataContext_ctx=newNorthwindDataContext();
string[]_ary=null;
protectedvoidPage_Load(objectsender,EventArgse)
{
_ary=newstring[]{"asp.net","csharp","xhtml","css","javascript",
"wcf","wpf","silverlight","linq","wf",
"sqlserver","asp.netajax","ssis","ssas","***s"};
//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>
voidSummary_First_FirstOrDefault()
{
strings=(fromain_ary
selecta).First(a=>a.StartsWith("s"));
//strings=(fromain_ary
//selecta).FirstOrDefault(a=>a.StartsWith("xxx"));
//s==null
result.InnerHtml+=s+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
silverlight
Last-返回集合中的最后一个元素;不延迟
LastOrDefault-返回集合中的最后一个元素(如果没有则返回默认值)
/**////<summary>
///Last-返回集合中的最后一个元素;不延迟
///LastOrDefault-返回集合中的最后一个元素(如果没有则返回默认值)
///</summary>
voidSummary_Last_LastOrDefault()
{
strings=(fromain_ary
selecta).Last(a=>a.StartsWith("s"));
//strings=(fromain_ary
//selecta).LastOrDefault(a=>a.StartsWith("sss"));
//s==null
result.InnerHtml+=s+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
***s
ElementAt-返回集合中指定索引的元素;不延迟
ElementAtOrDefault-返回集合中指定索引的元素(如果没有则返回默认值);不延迟
/**////<summary>
///ElementAt-返回集合中指定索引的元素;不延迟
///ElementAtOrDefault-返回集合中指定索引的元素(如果没有则返回默认值);不延迟
///</summary>
voidSummary_ElementAt_ElementAtOrDefault()
{
strings=(fromain_ary
selecta).ElementAt(3);
//strings=(fromain_ary
//selecta).ElementAtOrDefault(1000);
//s==null
result.InnerHtml+=s+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
css
Contains-判断集合中是否包含有某一元素;不延迟
/**////<summary>
///Contains-判断集合中是否包含有某一元素;不延迟
///</summary>
voidSummary_Contains()
{
boolb=(fromain_ary
selecta).Contains("javascript");
result.InnerHtml+=b.ToString()+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
True
Any-判断集合中是否有元素满足某一条件;不延迟
/**////<summary>
///Any-判断集合中是否有元素满足某一条件;不延迟
///</summary>
voidSummary_Any()
{
boolb=(fromain_ary
selecta).Any(p=>p.Length>10);
result.InnerHtml+=b.ToString()+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
True
All-判断集合中是否所有元素都满足某一条件;不延迟
/**////<summary>
///All-判断集合中是否所有元素都满足某一条件;不延迟
///</summary>
voidSummary_All()
{
boolb=(fromain_ary
selecta).All(p=>p.Length>10);
result.InnerHtml+=b.ToString()+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
False
Count-返回集合中的元素个数,返回int;不延迟
LongCount-返回集合中的元素个数,返回long;不延迟
/**////<summary>
///Count-返回集合中的元素个数,返回int;不延迟
///LongCount-返回集合中的元素个数,返回long;不延迟
///</summary>
voidSummary_Count_LongCount()
{
inti=(fromain_ary
selecta).Count(p=>p.Length>10);
//longi=(fromain_ary
//selecta).LongCount(p=>p.Length>10);
result.InnerHtml+=i.ToString()+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
2
Sum-集合应为数字类型集合,求其和;不延迟
/**////<summary>
///Sum-集合应为数字类型集合,求其和;不延迟
///</summary>
voidSummary_Sum()
{
inti=(fromain_ary
selecta.Length).Sum();
result.InnerHtml+=i.ToString()+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
87
Min-返回集合的最小值;不延迟
/**////<summary>
///Min-返回集合的最小值;不延迟
///</summary>
voidSummary_Min()
{
inti=(fromain_ary
selecta.Length).Min();
result.InnerHtml+=i.ToString()+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
2
Max-返回集合的最大值;不延迟
/**////<summary>
///Max-返回集合的最大值;不延迟
///</summary>
voidSummary_Max()
{
inti=(fromain_ary
selecta.Length).Max();
result.InnerHtml+=i.ToString()+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
12
Average-集合应为数字类型集合,求其平均值;不延迟
/**////<summary>
///Average-集合应为数字类型集合,求其平均值;不延迟
///</summary>
voidSummary_Average()
{
doubled=(fromain_ary
selecta.Length).Average();
result.InnerHtml+=d.ToString()+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
5.8
Aggregate-根据输入的表达式获取一个聚合值;不延迟
/**////<summary>
///Aggregate-根据输入的表达式获取一个聚合值;不延迟
///</summary>
voidSummary_Aggregate()
{
//以下算法的Aggregate相当于Sum
doubled=(fromain_ary
selecta.Length).Aggregate((x,y)=>x+y);
result.InnerHtml+=d.ToString()+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
87
Cast-将集合转换为强类型集合;延迟
/**////<summary>
///Cast-将集合转换为强类型集合;延迟
///</summary>
voidSummary_Cast()
{
ArrayListal=newArrayList();
al.Add("asp.net");
al.Add("csharp");
al.Add("xhtml");
varlist=al.Cast<string>();
foreach(stringsinlist)
{
result.InnerHtml+=s+"<br/>";
}
result.InnerHtml+="<br/>";
}运行结果
asp.net
csharp
xhtml
DefaultIfEmpty-查询结果为空则返回默认值;延迟
/**////<summary>
///DefaultIfEmpty-查询结果为空则返回默认值;延迟
///</summary>
voidSummary_DefaultIfEmpty()
{
varlist=(fromain_ary
wherea.Length>100
selecta).DefaultIfEmpty("xxx");
foreach(stringsinlist)
{
result.InnerHtml+=s+"<br/>";
}
result.InnerHtml+="<br/>";
}运行结果
xxx
SequenceEqual-判断两个集合是否相同;不延迟
/**////<summary>
///SequenceEqual-判断两个集合是否相同;不延迟
///</summary>
voidSummary_SequenceEqual()
{
boolb=(fromain_ary
wherea.Length>10
selecta).SequenceEqual(fromain_ary
wherea.Length>10
selecta);
result.InnerHtml+=b.ToString()+"<br/>";
result.InnerHtml+="<br/>";
}运行结果
True
OfType-过滤集合中的指定类型;延迟
/**////<summary>
///OfType-过滤集合中的指定类型;延迟
///</summary>
voidSummary_OfType()
{
object[]objects={1,"a",2,"b",3,"c"};
varlist=objects.OfType<string>();
foreach(stringsinlist)
{
result.InnerHtml+=s+"<br/>";
}
result.InnerHtml+="<br/>";
}运行结果
a
b
c
ToArray-将集合转换为数组;不延迟
/**////<summary>
///ToArray-将集合转换为数组;不延迟
///</summary>
voidSummary_ToArray()
{
string[]ary=(frompin_ctx.Products
wherep.ProductName.Length>30
selectp.ProductName).ToArray();
foreach(stringsinary)
{
result.InnerHtml+=s+"<br/>";
}
result.InnerHtml+="<br/>";
}运行结果
Jack'sNewEnglandClamChowder
LouisianaFieryHotPepperSauce
OriginalFrankfurtergrüneSo?e
UncleBob'sOrganicDriedPears
ToList-将集合转换为List<T>集合;不延迟
/**////<summary>
///ToList-将集合转换为List<T>集合;不延迟
///</summary>
voidSummary_ToList()
{
varlist=(fromain_ary
wherea.Length>10
selecta).ToList();
foreach(stringsinlist)
{
result.InnerHtml+=s+"<br/>";
}
result.InnerHtml+="<br/>";
}运行结果
silverlight
asp.netajax
ToDictionary-将集合转换为<K,V>集合;不延迟
/**////<summary>
///ToDictionary-将集合转换为<K,V>集合;不延迟
///</summary>
voidSummary_ToDictionary()
{
vardic=(frompin_ctx.Products
wherep.ProductName.Length>30
selectp).ToDictionary(p=>p.ProductID);
foreach(varpindic)
{
result.InnerHtml+=p.Key+":"+p.Value.ProductName+"<br/>";
}
result.InnerHtml+="<br/>";
}运行结果
7:UncleBob'sOrganicDriedPears
41:Jack'sNewEnglandClamChowder
65:LouisianaFieryHotPepperSauce
77:OriginalFrankfurtergrüneSo?e
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。