加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[读书笔记]C#学习笔记六: C#3.0Lambda表达式及Linq解析

发布时间:2020-12-15 04:42:34 所属栏目:百科 来源:网络整理
导读:p style="background: gray; color: #ffffff; font-size: 18pt;"前言 Main( [] s = []{ , , , , , , result = n s n [] b = ( i = ; i } splitTexts = cmbValidationText.Split( (cmbValidation.Items != cmbValidation.Items.Count > ( splitText valid = c

<p style="background: gray; color: #ffffff; font-size: 18pt;">前言

Main( [] s = []{ ,,,,,, result = n s n < [] b = ( i = ; i < b.Length; i++ }

splitTexts = cmbValidationText.Split( (cmbValidation.Items != && cmbValidation.Items.Count > ( splitText valid = cmbValidation.Items.Any(item => (item != ) && (item.Enabled) &&             ( (! invalidText += splitText.ToString() + isInvalidTextExist = categoryAndCapabilities = capabilities.Select(item => PRResponseCategory category = PRCapability prCapability = (prCapability != category = { Category = category,PRCapability = prCapability,Capability = .Where(item => (item != && item.Category != && item.PRCapability != .OrderBy(item => .ThenBy(item => item.PRCapability.AllowNumeric.GetValueOrDefault() ? : .ThenBy(item => .GroupBy(item => .ToDictionary(grouping => grouping.Key,grouping => grouping.ToList());

[] arr = [] { ,,,,,,, query = n ( element }

[] arr = []{, query = n n > ( element }

[] arr1= [] {, [] arr2= [] {, query = a b a + ( element }

Main( [] arr = [] {, query = n let isEven = (n % == ? : ( element }

[] arr = []{, query = n n> && n< ( element }

Main( [] arr = [] { , query = n n > && n < group n by n % ( element }

>),该序列的元素类型为IGrouping.其实,该查询结果中的元素也是一个序列。

1.5,into子句 1 && n<6:指定筛选大于1且小于6的元素。

[] arr = []{, query = n n>&& n< group n by n% sn ( element }

[] arra = [] {, [] arrb = []{, query = a a < join b ( element }

xmlString = + + Barry Wang + + + + Tony Jia + + + + Anson Shen + + + Main( Console.WriteLine( XElement xmlDoc = queryResults = element xmlDoc.Elements( element.Element().Value == ( xele Console.WriteLine( + xele.Element().Value + + xele.Attribute( }

"运算符(读作goes to),该运算符的左边是匿名方法的输入参数,右边则是表达式或语句块.

LINQ的书写格式如下:  

表达式或者语句块

* s Students.Select( s => s)

sname,ssex, s Students.Select( s => SNAME = s.SNAME,SSEX = s.SSEX,CLASS = })

distinct depart t Teachers.Distinct().Select( t => t.DEPART)

* score degree between and s s.DEGREE >= && s.DEGREE < s => s.DEGREE >= && s.DEGREE < )

* score degree (,, s []{, Scores.Where( s => Decimal[] {,}.Contains(s.DEGREE))

* student = or ssex= N s s.CLASS == || s.CLASS == Students.Where(s => ( s.CLASS == || s.CLASS == ))

* s Students.OrderByDescending(s => s.CLASS)

count(*) student = ( s s.CLASS == Students.Where( s => s.CLASS == .Select( s => .Count()

avg(degree) score cno = s s.CNO == Scores.Where( s => s.CNO == .Select( s => s.DEGREE).Average()

distinct s.Sno,c.Cno student s,course c,score s.sno=( sno score degree = ( max(degree) and c.cno = ( cno score degree = ( max(degree) s c sc let maxDegree = ( sss let sno = ( ss ss.DEGREE == let cno = ( ssss ssss.DEGREE == s.SNO == sno && c.CNO == ).Distinct()

avg(degree) score cno like group by Cno having count(*)>= s s.CNO.StartsWith( cc.Count() >= cc.Average( c => Scores.Where( s => s.CNO.StartsWith( .GroupBy( s => .Where( cc => ( cc.Count() >= .Select( cc => cc.Average( c => s.CNO.StartsWith() or SqlMethods.Like(s.CNO,)

avg(degree) score cno like group by Cno having count(*)>= s s.CNO.StartsWith( cc.Count() >= cc.Average( c => Scores.Where( s => s.CNO.StartsWith( .GroupBy( s => .Where( cc => ( cc.Count() >= .Select( cc => cc.Average( c => s.CNO.StartsWith() or SqlMethods.Like(s.CNO,sans-serif;">13. 多表查询

sc.sno,c.cname,sc.degree course c,score sc c.cno = c join sc Courses.Join ( Scores,c => sc => (c,sc) => SNO = CNAME = DEGREE = })

14,关联多条件查询

感谢@浪子哥 给的建议,现在加上两张表的关联多条件查询,只有Linq和Lambda表达式

今天自己又参考园里大神的一些帖子自己写了一个两张表关联查询的Linq及Lambda表达式的Demo,大家可以看下.

DataTable tableA = tableA.Columns.Add(,( tableA.Columns.Add(,( tableA.Columns.Add(,( DataTable tableB = tableB.Columns.Add(,( tableB.Columns.Add(,( tableB.Columns.Add(,( tableA.Rows.Add(,, tableA.Rows.Add(,, tableA.Rows.Add(,, tableA.Rows.Add(,, tableB.Rows.Add(, tableB.Rows.Add(,, tableB.Rows.Add(, tableB.Rows.Add(,, singleQuery = tableA.AsEnumerable().Where(stu => stu.Field<>() > ( item Console.WriteLine(,item.Field<>(),              item.Field<>( doubleQuery = a b a.Field<>() == b.Field<>() && a.Field<>() != b.Field<>( a.Field<>(),a.Field<>( Name = a.Field<>( A_Age = a.Field<>( B_Age = b.Field<>( ( item Console.WriteLine( query = a => a.Field<>( b => b.Field<>( (a,b) => a = b = .Where(c => (c.a.Field<>() != c.b.Field<>( .OrderBy(d => d.a.Field<>( .ThenBy(e => e.a.Field<>( .Select(f => Name = f.a.Field<>( A_Age = f.a.Field<>( B_Age = f.b.Field<>( A_Score = f.a.Field<>( B_Score = f.a.Field<>( ( item Console.WriteLine(
        }

解析:

  首先可以看出来,Lambda表达式对于这种多表多条件的查询写法的易读性明显没有Linq高,所以 还是建议用Linq去写. 运行结果如下图:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读