1. 程式人生 > >LINQ查詢操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Count 等

LINQ查詢操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Count 等

rank eve partial ssas 判斷 index contains 長度 .html

介紹
·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 - 返回集合中的最後一個元素(如果沒有則返回默認值) /**//// <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 />"; }運行結果 ssrs ElementAt - 返回集合中指定索引的元素;不延遲 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 />"; }運行結果 css Contains - 判斷集合中是否包含有某一元素;不延遲 /**//// <summary> /// Contains - 判斷集合中是否包含有某一元素;不延遲 /// </summary> void Summary_Contains() { bool b = (from a in _ary select a).Contains("javascript"); result.InnerHtml += b.ToString() + "<br />"; result.InnerHtml += "<br />"; }運行結果 True Any - 判斷集合中是否有元素滿足某一條件;不延遲 /**//// <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 />"; }運行結果 True All - 判斷集合中是否所有元素都滿足某一條件;不延遲 /**//// <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 />"; }運行結果 False Count - 返回集合中的元素個數,返回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 Sum - 集合應為數字類型集合,求其和;不延遲 /**//// <summary> /// Sum - 集合應為數字類型集合,求其和;不延遲 /// </summary> void Summary_Sum() { int i = (from a in _ary select a.Length).Sum(); result.InnerHtml += i.ToString() + "<br />"; result.InnerHtml += "<br />"; }運行結果 87 Min - 返回集合的最小值;不延遲 /**//// <summary> /// Min - 返回集合的最小值;不延遲 /// </summary> void Summary_Min() { int i = (from a in _ary select a.Length).Min(); result.InnerHtml += i.ToString() + "<br />"; result.InnerHtml += "<br />"; }運行結果 2 Max - 返回集合的最大值;不延遲 /**//// <summary> /// Max - 返回集合的最大值;不延遲 /// </summary> void Summary_Max() { int i = (from a in _ary select a.Length).Max(); result.InnerHtml += i.ToString() + "<br />"; result.InnerHtml += "<br />"; }運行結果 12 Average - 集合應為數字類型集合,求其平均值;不延遲 /**//// <summary> /// Average - 集合應為數字類型集合,求其平均值;不延遲 /// </summary> void Summary_Average() { double d = (from a in _ary select a.Length).Average(); result.InnerHtml += d.ToString() + "<br />"; result.InnerHtml += "<br />"; }運行結果 5.8 Aggregate - 根據輸入的表達式獲取一個聚合值;不延遲 /**//// <summary> /// Aggregate - 根據輸入的表達式獲取一個聚合值;不延遲 /// </summary> void Summary_Aggregate() { // 以下算法的Aggregate相當於Sum double d = (from a in _ary select a.Length).Aggregate((x, y) => x + y); result.InnerHtml += d.ToString() + "<br />"; result.InnerHtml += "<br />"; }運行結果 87 Cast - 將集合轉換為強類型集合;延遲 /**//// <summary> /// Cast - 將集合轉換為強類型集合;延遲 /// </summary> void Summary_Cast() { ArrayList al = new ArrayList(); al.Add("asp.net"); al.Add("csharp"); al.Add("xhtml"); var list = al.Cast<string>(); foreach (string s in list) { result.InnerHtml += s + "<br />"; } result.InnerHtml += "<br />"; }運行結果 asp.net csharp xhtml DefaultIfEmpty - 查詢結果為空則返回默認值;延遲 /**//// <summary> /// DefaultIfEmpty - 查詢結果為空則返回默認值;延遲 /// </summary> void Summary_DefaultIfEmpty() { var list = (from a in _ary where a.Length > 100 select a).DefaultIfEmpty("xxx"); foreach (string s in list) { result.InnerHtml += s + "<br />"; } result.InnerHtml += "<br />"; }運行結果 xxx SequenceEqual - 判斷兩個集合是否相同;不延遲 /**//// <summary> /// SequenceEqual - 判斷兩個集合是否相同;不延遲 /// </summary> void Summary_SequenceEqual() { bool b = (from a in _ary where a.Length > 10 select a).SequenceEqual(from a in _ary where a.Length > 10 select a); result.InnerHtml += b.ToString() + "<br />"; result.InnerHtml += "<br />"; }運行結果 True OfType - 過濾集合中的指定類型;延遲 /**//// <summary> /// OfType - 過濾集合中的指定類型;延遲 /// </summary> void Summary_OfType() { object[] objects = { 1, "a", 2, "b", 3, "c" }; var list = objects.OfType<string>(); foreach (string s in list) { result.InnerHtml += s + "<br />"; } result.InnerHtml += "<br />"; }運行結果 a b c ToArray - 將集合轉換為數組;不延遲 /**//// <summary> /// ToArray - 將集合轉換為數組;不延遲 /// </summary> void Summary_ToArray() { string[] ary = (from p in _ctx.Products where p.ProductName.Length > 30 select p.ProductName).ToArray(); foreach (string s in ary) { result.InnerHtml += s + "<br />"; } result.InnerHtml += "<br />"; }運行結果 Jacks New England Clam Chowder Louisiana Fiery Hot Pepper Sauce Original Frankfurter grüne So?e Uncle Bobs Organic Dried Pears ToList - 將集合轉換為List<T>集合;不延遲 /**//// <summary> /// ToList - 將集合轉換為List<T>集合;不延遲 /// </summary> void Summary_ToList() { var list = (from a in _ary where a.Length > 10 select a).ToList(); foreach (string s in list) { result.InnerHtml += s + "<br />"; } result.InnerHtml += "<br />"; }運行結果 silverlight asp.net ajax ToDictionary - 將集合轉換為<K, V>集合;不延遲 /**//// <summary> /// ToDictionary - 將集合轉換為<K, V>集合;不延遲 /// </summary> void Summary_ToDictionary() { var dic = (from p in _ctx.Products where p.ProductName.Length > 30 select p).ToDictionary(p => p.ProductID); foreach (var p in dic) { result.InnerHtml += p.Key + "" + p.Value.ProductName + "<br />"; } result.InnerHtml += "<br />"; }運行結果 7:Uncle Bobs Organic Dried Pears 41:Jacks New England Clam Chowder 65:Louisiana Fiery Hot Pepper Sauce 77:Original Frankfurter grüne So?e


在string[]數組中使用Where查找需要的數據
string html="fdsfdsfd,123456789,45645645645645645,4565,1,556456"; //從html中查找到長度大於10的字符串 string uid = html.Split(‘,‘).Where(f1 => f1.Length > 10).LastOrDefault().ToString();

LINQ查詢操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Count 等