天天看點

步步為營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

介紹

    ·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">未完待續&gt;&gt;</a>

     本文轉自webabcd 51CTO部落格,原文連結:http://blog.51cto.com/webabcd/345005,如需轉載請自行聯系原作者

繼續閱讀