步步為營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 />";
}
運作結果
silverlight
Last - 傳回集合中的最後一個元素;不延遲
LastOrDefault - 傳回集合中的最後一個元素(如果沒有則傳回預設值)
/// Last - 傳回集合中的最後一個元素;不延遲
/// LastOrDefault - 傳回集合中的最後一個元素(如果沒有則傳回預設值)
void Summary_Last_LastOrDefault()
select a).Last(a => a.StartsWith("s"));
// select a).LastOrDefault(a => a.StartsWith("sss"));
ssrs
ElementAt - 傳回集合中指定索引的元素;不延遲
ElementAtOrDefault - 傳回集合中指定索引的元素(如果沒有則傳回預設值);不延遲
/// ElementAt - 傳回集合中指定索引的元素;不延遲
/// ElementAtOrDefault - 傳回集合中指定索引的元素(如果沒有則傳回預設值);不延遲
void Summary_ElementAt_ElementAtOrDefault()
select a).ElementAt(3);
// select a).ElementAtOrDefault(1000);
css
Contains - 判斷集合中是否包含有某一進制素;不延遲
/// <summary>
/// Contains - 判斷集合中是否包含有某一進制素;不延遲
void Summary_Contains()
bool b = (from a in _ary
select a).Contains("javascript");
result.InnerHtml += b.ToString() + "<br />";
True
Any - 判斷集合中是否有元素滿足某一條件;不延遲
/// Any - 判斷集合中是否有元素滿足某一條件;不延遲
void Summary_Any()
select a).Any(p => p.Length > 10);
All - 判斷集合中是否所有元素都滿足某一條件;不延遲
/// All - 判斷集合中是否所有元素都滿足某一條件;不延遲
void Summary_All()
select a).All(p => p.Length > 10);
False
Count - 傳回集合中的元素個數,傳回int;不延遲
LongCount - 傳回集合中的元素個數,傳回long;不延遲
/// Count - 傳回集合中的元素個數,傳回int;不延遲
/// LongCount - 傳回集合中的元素個數,傳回long;不延遲
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 />";
2
<a href="http://webabcd.blog.51cto.com/1787395/345003" target="_blank">未完待續>></a>
本文轉自webabcd 51CTO部落格,原文連結:http://blog.51cto.com/webabcd/345005,如需轉載請自行聯系原作者