转发:LINQ查询操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Coun .

原文:http://blog.csdn.net/anchenyanyue/article/details/6732186

 

 

介绍  
  1.     ·First - 返回集合中的第一个元素;不延迟  
  2.     ·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟  
  3.     ·Last - 返回集合中的最后一个元素;不延迟  
  4.     ·LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)  
  5.     ·ElementAt - 返回集合中指定索引的元素;不延迟  
  6.     ·ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟  
  7.     ·Contains - 判断集合中是否包含有某一元素;不延迟  
  8.     ·Any - 判断集合中是否有元素满足某一条件;不延迟  
  9.     ·All - 判断集合中是否所有元素都满足某一条件;不延迟  
  10.     ·Count - 返回集合中的元素个数,返回int;不延迟  
  11.     ·LongCount - 返回集合中的元素个数,返回long;不延迟  
  12.     ·Sum - 集合应为数字类型集合,求其和;不延迟  
  13.     ·Min - 返回集合的最小值;不延迟  
  14.     ·Max - 返回集合的最大值;不延迟  
  15.     ·Average - 集合应为数字类型集合,求其平均值;不延迟  
  16.     ·Aggregate - 根据输入的表达式获取一个聚合值;不延迟  
  17.     ·Cast - 将集合转换为强类型集合;延迟  
  18.     ·DefaultIfEmpty - 查询结果为空则返回默认值;延迟  
  19.     ·SequenceEqual - 判断两个集合是否相同;不延迟  
  20.     ·OfType - 过滤集合中的指定类型;延迟  
  21.     ·ToArray - 将集合转换为数组;不延迟  
  22.     ·ToList - 将集合转换为List<T>集合;不延迟  
  23.     ·ToDictionary - 将集合转换为<K, V>集合;不延迟  
  24.   
  25.   
  26. 示例  
  27. Summary3.aspx.cs  
  28. using System;  
  29. using System.Data;  
  30. using System.Configuration;  
  31. using System.Collections;  
  32. using System.Linq;  
  33. using System.Web;  
  34. using System.Web.Security;  
  35. using System.Web.UI;  
  36. using System.Web.UI.WebControls;  
  37. using System.Web.UI.WebControls.WebParts;  
  38. using System.Web.UI.HtmlControls;  
  39. using System.Xml.Linq;  
  40.   
  41. using System.Collections.Generic;  
  42. using DAL;  
  43.   
  44. public partial class LINQ_Summary3 : System.Web.UI.Page  
  45. {  
  46.     NorthwindDataContext _ctx = new NorthwindDataContext();  
  47.     string[] _ary = null;  
  48.   
  49.     protected void Page_Load(object sender, EventArgs e)  
  50.     {  
  51.         _ary = new string[] { "asp.net", "csharp", "xhtml", "css", "javascript",   
  52.             "wcf", "wpf", "silverlight", "linq", "wf",   
  53.             "sqlserver", "asp.net ajax", "ssis", "ssas", "ssrs" };  
  54.   
  55.         // First - 返回集合中的第一个元素;不延迟   
  56.         // FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟   
  57.         Summary_First_FirstOrDefault();  
  58.   
  59.         // Last - 返回集合中的最后一个元素;不延迟   
  60.         // LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)   
  61.         Summary_Last_LastOrDefault();  
  62.   
  63.         // ElementAt - 返回集合中指定索引的元素;不延迟   
  64.         // ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟   
  65.         Summary_ElementAt_ElementAtOrDefault();  
  66.   
  67.         // Contains - 判断集合中是否包含有某一元素;不延迟   
  68.         Summary_Contains();  
  69.   
  70.         // Any - 判断集合中是否有元素满足某一条件;不延迟   
  71.         Summary_Any();  
  72.   
  73.         // All - 判断集合中是否所有元素都满足某一条件;不延迟   
  74.         Summary_All();  
  75.   
  76.         // Count - 返回集合中的元素个数,返回int;不延迟   
  77.         // LongCount - 返回集合中的元素个数,返回long;不延迟   
  78.         Summary_Count_LongCount();  
  79.   
  80.         // Sum - 集合应为数字类型集合,求其和;不延迟   
  81.         Summary_Sum();  
  82.   
  83.         // Min - 返回集合的最小值;不延迟   
  84.         Summary_Min();  
  85.   
  86.         // Max - 返回集合的最大值;不延迟   
  87.         Summary_Max();  
  88.   
  89.         // Average - 集合应为数字类型集合,求其平均值;不延迟   
  90.         Summary_Average();  
  91.   
  92.         // Aggregate - 根据输入的表达式获取一个聚合值;不延迟   
  93.         Summary_Aggregate();  
  94.   
  95.         // Cast - 将集合转换为强类型集合;延迟   
  96.         Summary_Cast();  
  97.   
  98.         // DefaultIfEmpty - 查询结果为空则返回默认值;延迟   
  99.         Summary_DefaultIfEmpty();  
  100.   
  101.         // SequenceEqual - 判断两个集合是否相同;不延迟   
  102.         Summary_SequenceEqual();  
  103.   
  104.         // OfType - 过滤集合中的指定类型;延迟   
  105.         Summary_OfType();  
  106.   
  107.         // ToArray - 将集合转换为数组;不延迟   
  108.         Summary_ToArray();  
  109.   
  110.         // ToList - 将集合转换为List<T>集合;不延迟   
  111.         Summary_ToList();  
  112.   
  113.         // ToDictionary - 将集合转换为<K, V>集合;不延迟   
  114.         Summary_ToDictionary();  
  115.     }  
  116. }  
  117. First - 返回集合中的第一个元素;不延迟  
  118. FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟  
  119.     /**//// <summary>  
  120.     /// First - 返回集合中的第一个元素;不延迟   
  121.     /// FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟   
  122.     /// </summary>   
  123.     void Summary_First_FirstOrDefault()  
  124.     {  
  125.         string s = (from a in _ary  
  126.                     select a).First(a => a.StartsWith("s"));  
  127.         // string s = (from a in _ary   
  128.         //             select a).FirstOrDefault(a => a.StartsWith("xxx"));   
  129.         // s == null   
  130.   
  131.         result.InnerHtml += s + "<br />";  
  132.         result.InnerHtml += "<br />";  
  133.     }运行结果  
  134. silverlight  
  135.   
  136. Last - 返回集合中的最后一个元素;不延迟  
  137. LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)  
  138.     /**//// <summary>  
  139.     /// Last - 返回集合中的最后一个元素;不延迟   
  140.     /// LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)   
  141.     /// </summary>   
  142.     void Summary_Last_LastOrDefault()  
  143.     {  
  144.         string s = (from a in _ary  
  145.                     select a).Last(a => a.StartsWith("s"));  
  146.         // string s = (from a in _ary   
  147.         //             select a).LastOrDefault(a => a.StartsWith("sss"));   
  148.         // s == null   
  149.   
  150.         result.InnerHtml += s + "<br />";  
  151.         result.InnerHtml += "<br />";  
  152.     }运行结果  
  153. ssrs  
  154.   
  155. ElementAt - 返回集合中指定索引的元素;不延迟  
  156. ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟  
  157.     /**//// <summary>  
  158.     /// ElementAt - 返回集合中指定索引的元素;不延迟   
  159.     /// ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟   
  160.     /// </summary>   
  161.     void Summary_ElementAt_ElementAtOrDefault()  
  162.     {  
  163.         string s = (from a in _ary  
  164.                     select a).ElementAt(3);  
  165.         // string s = (from a in _ary   
  166.         //             select a).ElementAtOrDefault(1000);   
  167.         // s == null   
  168.   
  169.         result.InnerHtml += s + "<br />";  
  170.         result.InnerHtml += "<br />";  
  171.     }运行结果  
  172. css  
  173.   
  174. Contains - 判断集合中是否包含有某一元素;不延迟  
  175.     /**//// <summary>  
  176.     /// Contains - 判断集合中是否包含有某一元素;不延迟   
  177.     /// </summary>   
  178.     void Summary_Contains()  
  179.     {  
  180.         bool b = (from a in _ary  
  181.                   select a).Contains("javascript");  
  182.   
  183.         result.InnerHtml += b.ToString() + "<br />";  
  184.         result.InnerHtml += "<br />";  
  185.     }运行结果  
  186. True  
  187.   
  188. Any - 判断集合中是否有元素满足某一条件;不延迟  
  189.     /**//// <summary>  
  190.     /// Any - 判断集合中是否有元素满足某一条件;不延迟   
  191.     /// </summary>   
  192.     void Summary_Any()  
  193.     {  
  194.         bool b = (from a in _ary  
  195.                   select a).Any(p => p.Length > 10);  
  196.   
  197.         result.InnerHtml += b.ToString() + "<br />";  
  198.         result.InnerHtml += "<br />";  
  199.     }运行结果  
  200. True  
  201.   
  202. All - 判断集合中是否所有元素都满足某一条件;不延迟  
  203.     /**//// <summary>  
  204.     /// All - 判断集合中是否所有元素都满足某一条件;不延迟   
  205.     /// </summary>   
  206.     void Summary_All()  
  207.     {  
  208.         bool b = (from a in _ary  
  209.                   select a).All(p => p.Length > 10);  
  210.   
  211.         result.InnerHtml += b.ToString() + "<br />";  
  212.         result.InnerHtml += "<br />";  
  213.     }运行结果  
  214. False  
  215.   
  216. Count - 返回集合中的元素个数,返回int;不延迟  
  217. LongCount - 返回集合中的元素个数,返回long;不延迟  
  218.     /**//// <summary>  
  219.     /// Count - 返回集合中的元素个数,返回int;不延迟   
  220.     /// LongCount - 返回集合中的元素个数,返回long;不延迟   
  221.     /// </summary>   
  222.     void Summary_Count_LongCount()  
  223.     {  
  224.         int i = (from a in _ary  
  225.                  select a).Count(p => p.Length > 10);  
  226.         // long i = (from a in _ary   
  227.         //           select a).LongCount(p => p.Length > 10);   
  228.   
  229.         result.InnerHtml += i.ToString() + "<br />";  
  230.         result.InnerHtml += "<br />";  
  231.     }运行结果  
  232. 2  
  233.   
  234. Sum - 集合应为数字类型集合,求其和;不延迟  
  235.     /**//// <summary>  
  236.     /// Sum - 集合应为数字类型集合,求其和;不延迟   
  237.     /// </summary>   
  238.     void Summary_Sum()  
  239.     {  
  240.         int i = (from a in _ary  
  241.                  select a.Length).Sum();  
  242.   
  243.         result.InnerHtml += i.ToString() + "<br />";  
  244.         result.InnerHtml += "<br />";  
  245.     }运行结果  
  246. 87  
  247.   
  248. Min - 返回集合的最小值;不延迟  
  249.     /**//// <summary>  
  250.     /// Min - 返回集合的最小值;不延迟   
  251.     /// </summary>   
  252.     void Summary_Min()  
  253.     {  
  254.         int i = (from a in _ary  
  255.                  select a.Length).Min();  
  256.   
  257.         result.InnerHtml += i.ToString() + "<br />";  
  258.         result.InnerHtml += "<br />";  
  259.     }运行结果  
  260. 2  
  261.   
  262. Max - 返回集合的最大值;不延迟  
  263.     /**//// <summary>  
  264.     /// Max - 返回集合的最大值;不延迟   
  265.     /// </summary>   
  266.     void Summary_Max()  
  267.     {  
  268.         int i = (from a in _ary  
  269.                  select a.Length).Max();  
  270.   
  271.         result.InnerHtml += i.ToString() + "<br />";  
  272.         result.InnerHtml += "<br />";  
  273.     }运行结果  
  274. 12  
  275.   
  276. Average - 集合应为数字类型集合,求其平均值;不延迟  
  277.     /**//// <summary>  
  278.     /// Average - 集合应为数字类型集合,求其平均值;不延迟   
  279.     /// </summary>   
  280.     void Summary_Average()  
  281.     {  
  282.         double d = (from a in _ary  
  283.                     select a.Length).Average();  
  284.   
  285.         result.InnerHtml += d.ToString() + "<br />";  
  286.         result.InnerHtml += "<br />";  
  287.     }运行结果  
  288. 5.8  
  289.   
  290. Aggregate - 根据输入的表达式获取一个聚合值;不延迟  
  291.     /**//// <summary>  
  292.     /// Aggregate - 根据输入的表达式获取一个聚合值;不延迟   
  293.     /// </summary>   
  294.     void Summary_Aggregate()  
  295.     {  
  296.         // 以下算法的Aggregate相当于Sum   
  297.         double d = (from a in _ary  
  298.                     select a.Length).Aggregate((x, y) => x + y);  
  299.   
  300.         result.InnerHtml += d.ToString() + "<br />";  
  301.         result.InnerHtml += "<br />";  
  302.     }运行结果  
  303. 87  
  304.   
  305. Cast - 将集合转换为强类型集合;延迟  
  306.     /**//// <summary>  
  307.     /// Cast - 将集合转换为强类型集合;延迟   
  308.     /// </summary>   
  309.     void Summary_Cast()  
  310.     {  
  311.         ArrayList al = new ArrayList();  
  312.         al.Add("asp.net");  
  313.         al.Add("csharp");  
  314.         al.Add("xhtml");  
  315.   
  316.         var list = al.Cast<string>();  
  317.   
  318.         foreach (string s in list)  
  319.         {  
  320.             result.InnerHtml += s + "<br />";  
  321.         }  
  322.         result.InnerHtml += "<br />";  
  323.     }运行结果  
  324. asp.net  
  325. csharp  
  326. xhtml  
  327.   
  328. DefaultIfEmpty - 查询结果为空则返回默认值;延迟  
  329.     /**//// <summary>  
  330.     /// DefaultIfEmpty - 查询结果为空则返回默认值;延迟   
  331.     /// </summary>   
  332.     void Summary_DefaultIfEmpty()  
  333.     {  
  334.         var list = (from a in _ary  
  335.                     where a.Length > 100  
  336.                     select a).DefaultIfEmpty("xxx");  
  337.   
  338.         foreach (string s in list)  
  339.         {  
  340.             result.InnerHtml += s + "<br />";  
  341.         }  
  342.         result.InnerHtml += "<br />";  
  343.     }运行结果  
  344. xxx  
  345.   
  346. SequenceEqual - 判断两个集合是否相同;不延迟  
  347.     /**//// <summary>  
  348.     /// SequenceEqual - 判断两个集合是否相同;不延迟   
  349.     /// </summary>   
  350.     void Summary_SequenceEqual()  
  351.     {  
  352.         bool b = (from a in _ary  
  353.                   where a.Length > 10  
  354.                   select a).SequenceEqual(from a in _ary  
  355.                                           where a.Length > 10  
  356.                                           select a);  
  357.   
  358.         result.InnerHtml += b.ToString() + "<br />";  
  359.         result.InnerHtml += "<br />";  
  360.     }运行结果  
  361. True  
  362.   
  363. OfType - 过滤集合中的指定类型;延迟  
  364.     /**//// <summary>  
  365.     /// OfType - 过滤集合中的指定类型;延迟   
  366.     /// </summary>   
  367.     void Summary_OfType()  
  368.     {  
  369.         object[] objects = { 1, "a", 2, "b", 3, "c" };  
  370.   
  371.         var list = objects.OfType<string>();  
  372.   
  373.         foreach (string s in list)  
  374.         {  
  375.             result.InnerHtml += s + "<br />";  
  376.         }  
  377.         result.InnerHtml += "<br />";  
  378.     }运行结果  
  379. a  
  380. b  
  381. c  
  382.   
  383. ToArray - 将集合转换为数组;不延迟  
  384.     /**//// <summary>  
  385.     /// ToArray - 将集合转换为数组;不延迟   
  386.     /// </summary>   
  387.     void Summary_ToArray()  
  388.     {  
  389.         string[] ary = (from p in _ctx.Products  
  390.                         where p.ProductName.Length > 30  
  391.                         select p.ProductName).ToArray();  
  392.   
  393.         foreach (string s in ary)  
  394.         {  
  395.             result.InnerHtml += s + "<br />";  
  396.         }  
  397.         result.InnerHtml += "<br />";  
  398.     }运行结果  
  399. Jack's New England Clam Chowder  
  400. Louisiana Fiery Hot Pepper Sauce  
  401. Original Frankfurter grüne So?e  
  402. Uncle Bob's Organic Dried Pears  
  403.   
  404. ToList - 将集合转换为List<T>集合;不延迟  
  405.     /**//// <summary>  
  406.     /// ToList - 将集合转换为List<T>集合;不延迟   
  407.     /// </summary>   
  408.     void Summary_ToList()  
  409.     {  
  410.         var list = (from a in _ary  
  411.                     where a.Length > 10  
  412.                     select a).ToList();  
  413.   
  414.         foreach (string s in list)  
  415.         {  
  416.             result.InnerHtml += s + "<br />";  
  417.         }  
  418.         result.InnerHtml += "<br />";  
  419.     }运行结果  
  420. silverlight  
  421. asp.net ajax  
  422.   
  423. ToDictionary - 将集合转换为<K, V>集合;不延迟  
  424.     /**//// <summary>  
  425.     /// ToDictionary - 将集合转换为<K, V>集合;不延迟   
  426.     /// </summary>   
  427.     void Summary_ToDictionary()  
  428.     {  
  429.         var dic = (from p in _ctx.Products  
  430.                    where p.ProductName.Length > 30  
  431.                    select p).ToDictionary(p => p.ProductID);  
  432.   
  433.         foreach (var p in dic)  
  434.         {  
  435.             result.InnerHtml += p.Key + ":" + p.Value.ProductName + "<br />";  
  436.         }  
  437.         result.InnerHtml += "<br />";  
  438.     }运行结果  
  439. 7:Uncle Bob's Organic Dried Pears  
  440. 41:Jack's New England Clam Chowder  
  441. 65:Louisiana Fiery Hot Pepper Sauce  
  442. 77:Original Frankfurter grüne So?e  
介绍
    ·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 />";
    }运行结果
Jack's New England Clam Chowder
Louisiana Fiery Hot Pepper Sauce
Original Frankfurter grüne So?e
Uncle Bob's 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 Bob's Organic Dried Pears
41:Jack's New England Clam Chowder
65:Louisiana Fiery Hot Pepper Sauce
77:Original Frankfurter grüne So?e

 

posted @   阿玛  阅读(156)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示