[C# 3.0 入门] [第一章 Lambda表达式] 第五节

[C# 3.0 入门] [第一章 Lambda表达式] 第五节:Lambda表达式的使用范例 & Lambda表达式的各种变体

Lambda表达式的使用范例

到现在为止的例子大多数,完全都是从文法上到功能上的说明,多数情况下不必使用Lambda表达式也能够写出来。最后,我还是来展示几个有一定实用性的Lambda表达式的实例。

这里是一个,输入整形的数组,以其值为除数,执行除法运算后输出结果的程序。因为要执行除法运算,所以输入的值可能存在不能接受的值(0)的情况(就是说,这个示例代码可以在输入值不正确的情况下也能正常工作)。

那么,这个程序的输入如果是0的情况下,就提示信息然后必须退出。这个意图如果用Lambda表达式该怎么写呢?

这个问题的要点有两个。

l 在执行计算的循环中检查0值的话,计算开始后会发生中断。就是说,可能会同时计算值与错误信息两者都输出。

l 如果不输出计算值只输出错误信息的话,最好在计算的循环之前在设置一个检查0值的循环。但是,这样写的话就用了两个循环太冗长了。

总之,两个方法都有缺点。换做笔者,如果有“计算开始前应该先检查完毕”的要求,去除繁冗更重要,所以更愿意选择在循环内判定。

1using System;
2
3class Program
4{
5  static void Main(string[] args)
6  {
7    int[] a = { 1, 2, 0 };
8
9    foreach (int n in a)
10    {
11      if ( n == 0 )
12      {
13        Console.WriteLine("数组里面含有0。");
14        return;
15      }
16      Console.WriteLine(100 / n);
17    }
18    // 输出:
19    // 100
20    // 50
21    // 数组里面含有0。
22  }
23}
24
25

时间: 2024-09-20 21:09:53

[C# 3.0 入门] [第一章 Lambda表达式] 第五节的相关文章

[C# 3.0 入门] [第一章 Lambda表达式] 第四节

[C# 3.0 入门] [第一章 Lambda表达式] 第四节:Lambda的用途 & 类型声明能够和不能够省略的情况 成问题的是,虽然为了源代码的简洁性,很想用Lambda表达式,但是要写的代码却不能全部都用Lambda表达式来写. 那么, Lambda表达式究竟能做到什么程度呢? 习惯了C/C++编程风格的程序员,一定以为因C#语法与之很相似,所以用C#编写相对复杂的程序应该也没有问题.可是很遗憾,情况不是这样.那是因为C/C++具有能写出复杂功能的表达式的逗号表达式,而C#却没有. 例如,

[C# 3.0入门] [第一章 Lambda表达式]第一节:C# 3.0是什么&C# 3.0的适用范围

第一回 Lambda表达式 本节原文http://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_01/csharp30_01_01.html C# 3.0 是什么 C#也顺利的进行了版本升级,变成3.0了.在连载开始之初,就当作是前言吧,简单的介绍一下C# 3.0究竟是什么. C# 3.0,是运行时绑定的类型安全(似乎我们称之为强类型)的面向对象(日语原文"object指向")语言.运行时绑定(日语原文是"动的"),指的是

[C# 3.0 入门] [第一章 Lambda表达式] 第二节:Lambda表达式带来了什么

本次的内容,主要是针对已经学习过C# 2.0的程序员读者的,前提是已经知道什么是匿名方法.如果还不清楚,请先阅读"连载:C# 2.0入门"(这篇会在今后翻译). 好的,现在进入正题. Lambda表达式(λ表达式),用一句话来解释,(不算很严谨)就是使匿名方法文字上更短的语法.虽然这样说,单"仅仅是文字上的变化,源代码的性质没有变"这样的想法也是一种误解.规模变化了,其性质也会变化.例如,实验室的烧杯中产生的现象,不一定会在大型的工厂里产生.同样的道理也适用于源代码

[C# 3.0 入门] [第一章 Lambda表达式] 第三节:Lambda与匿名方法的区别

Lambda表达式与匿名方法的区别 那么,为什么Lambda表达式比匿名方法写起来要短呢?这种像变戏法一样的手法真的能用吗?有没有重要信息遗漏掉呢?为了回答这些问题,就让我们把匿名方法和Lambda表达式比较一下,看看Lambda表达式究竟怎么写. 1using System; 2 3delegate int SampleDelegate(int x, int y); 4 5class Program 6{ 7 private static void Calculate(int x, int y

XSLT轻松入门第一章:XSLT概念

概念   提纲         本文共分五大章:XSLT概念,XSLT的实例,XSLT的元素语法,XPath的语法,XSLT的资源.      1.XSLT的概念        1.1 什么是XSLT      1.2 为什么要用XSLT         1.3 XSLT的历史        1.4 什么是XPath        1.5 XSLT和CSS的比较      1.6 XSLT和IE5        1.XSLT的概念      我们首先来澄清一个概念,大家可能听说过XSL(eXte

XSLT轻松入门第一章:XSLT的概念_XML/RSS

1.XSLT的概念 1.1 什么是XSLT 1.2 为什么要用XSLT 1.3 XSLT的历史 1.4 什么是XPath 1.5 XSLT和CSS的比较 1.6 XSLT和IE5 1.XSLT的概念 我们首先来澄清一个概念,大家可能听说过XSL(eXtensible Stylesheet Language),XSL和我们这里说的XSLT从狭义上理解是一样的,而按照W3C的标准,XSLT的说法更严格些,因此我们在文章中统一使用XSLT的称法.它们之间具体的关系我们会在下面讲述. 1.1 什么是XS

springBoot入门>>第一章>>springBoot第一个程序

前置条件  1.jdk安装完成  2.maven配置成功  3.myeclipse的maven插件配置成功 作者本人环境配置  1.mac Sierra 10.12.4   2.myeclipse2015  3.java版本:jdk 1.8.0_111  4.maven版本:Apache Maven 3.5.0  5.时间:2017-04-17 操作过程  1.创建项目          1.1 选择maven项目                           1.2创建第二步(不用修改)

XSLT轻松入门第一章:XSLT的概念

概念   1.5 XSLT和CSS的比较 CSS同样可以格式化XML文档,那么有了CSS为什么还需要XSLT呢?因为CSS虽然能够很好的控制输出的样式,比如色彩,字体,大小等,但是它有严重的局限性,就是: (1) CSS不能重新排序文档中的元素: (2) CSS不能判断和控制哪个元素被显示,哪个不被显示: (3) CSS不能统计计算元素中的数据: 换句话说,CSS只适合用于输出比较固定的最终文档.CSS的优点是简洁,消耗系统资源少:而XSLT虽然功能强大,但因为要重新索引XML结构树,所以消耗内

SEO学习步骤--SEO入门第一章

SEO学习步骤   摘要:学习SEO应该从哪里开始,每一个SEO都应该掌握这一学习SEO的方法:定位网站.需求分析选择好的内容.站内优化.站外优化.推广.数据分析.体验分析. 学习步骤: 1.定位好网站内容以后把你所想做排名的关键词定位好,关键词里包括了主关键词和长尾关键词.这里重点强调了不可以忽略长尾关键词的作用. 2.对于一个好的网站结构可以让搜索引擎蜘蛛顺利的抓取网站的内容,进而达到被收录的目的.比较有利于蜘蛛抓取的网站结构,一般来说,收录数量相对来说会比较多.只有让搜索引擎收录你网站页面