zoukankan      html  css  js  c++  java
  • Query Syntax versus Method Syntax (第四章)

    Query Syntax VS Method Syntax

    这个就不翻译拉。应该是专门术语。查询语法 对 方法语法

    这张文章大家应该看看Lambda语法。和扩展方法这个感念。其实Method Syntax就是lambad语法。lambda中用到了很多扩展方法这个东西。

    这节涉及东西很多。我只打算说下这两个方法的区别,从表现形式方面最容易看了

    Query Syntax 方法

    IEnumerable<int> numQuery1 = 
        from num in numbers
        where num % 2 == 0
        select num;

    就是前面经常看到这个写法

    Method Syntax方法

    IEnumerable<int> numQuery2 = numbers.Where(num => num % 2 == 0);
    哈哈。大家看着好像很爽又觉的奇怪吧。
    先看lambda语法
    Where(num => num % 2 == 0)就是这个东西。我也不做细致讲讲。简单的 num % 2 ==0 和Query Systax中的where num % 2 == 0
    是等价的,大家一看也就明白。num这个变量不用声明。直接使用了。就是返回值。=>这个操作符也不用深究相当于等于的意思
    numbers.Where(num => num % 2 == 0);
    这个where语法就是net3.0中大展伸手的扩展方法。where是系统已经定义。直接调用。大家注意看看扩展方法啊
     
    那么Lamdba语法是怎么来的呢?
    简单说又涉及到代理和匿名类。其实在编译期间lambda语法是被编译成代理匿名方法的 。where(delegate Mygele(x)....)。推荐大家看看webcast中
    net3.0尖锐体验李建中讲的。很不错的。咱们不是搞研究的会用就ok拉。了解一下还是好的
     
    好了Getting Started with LINQ in C# 这课程就到此为止了。虽然msdn还有一个是net3.0对linq的支持,其实没什么东西。
    还有一个是waklthrought几个操作练习,有空单独再写。
     
    里面可能有不少错误。欢迎一起讨论学习
     
     

    本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。

  • 相关阅读:
    java Math类方法使用
    线性逻辑回归与非线性逻辑回归pytorch+sklearn
    Java学习方向
    ubuntu16.04安装Anaconda+Pycharm+Pytorch
    迁移学习resnet
    简单的CNN图像分类datasets.MNIST/FashionMNIST
    pytorch学习2
    tools/build.c
    zBoot/Makefile
    tools/version.c
  • 原文地址:https://www.cnblogs.com/zjypp/p/2319486.html
Copyright © 2011-2022 走看看