转发:LINQ查询操作符之First、FirstOrDefault、Last、LastOrDefault、ElementAt、ElementAtOrDefault、Contains、Any、All、Coun .
原文:http://blog.csdn.net/anchenyanyue/article/details/6732186
介绍
- ·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
介绍 ·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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决