轻松学习C#的foreach迭代语句

C#语言提供的foreach语句是一个for语句循环的捷径,而且还促进了集合类的更为一致,先来看看它的定义格式:
foreach语句的定义格式为:
        foreach(类型   变量  in   集合)
        {
               子语句;
        }
       每执行一次内嵌语句,循环变量就依次取集合中的一个元素代入其中,在这里,循环变量是一个只读型局部变量,如试图改变其值将会发生编译错误。
       foreach语句用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成。in右边的项是集合名,in左边的项是变量名,用来存放该集合中的每个元素。
       foreach语句的优点一:语句简洁,效率高。
用一个遍历数组元素的例子来说明:
先用foreach语句来输出数组中的元素:

<span style="font-size:18px;">      int[,] ints =new int[2,3]{{1,2,3},{4,5,6}};
      foreach (int temp in ints)
      {
        Console.WriteLine(temp);
      }
      Console.ReadLine();</span>

再用for语句输出数组中元素:

<span style="font-size:18px;">   int[,] ints =new int[2,3]{{1,2,3},{4,5,6}};
 for (int i = 0; i < ints.GetLength(0); i++)
 {
   for (int j = 0; j < ints.GetLength(1); j++)
   {
     Console.WriteLine(ints[i,j]);
   }
 }
 Console.ReadLine();</span>

这两种代码执行的结果是一样的都是每行一个元素,共6行,元素分别是1 2 3 4 5 6。
        在一维数组中还无法体现出foreach语句的简洁性,高效率性,但是在二维数组,甚至多维数组中体现的更为明显和方便,所以在C#语言中要用循环语句提倡使用foreach语句。
        foreach语句的优点二:避免不必要的因素
        在C#语言中使用foreach语句不用考虑数组起始索引是几,很多人可能从其他语言转到C#的,那么原先语言的起始索引可能不是1,例如VB或者Delphi语言,那么在C#中使用数组的时候就难免疑问到底使用0开始还是用1开始呢,那么使foreach就可以避免这类问题。
        foreach语句的优点三:foreach语句自动完成类型转换
        这种体现可能通过如上的例子看不出任何效果,但是对于ArrayList之类的数据集来说,这种操作就显得比较突出。
先用foreach语句来实现类型转换操作:在使用ArrayList类时先要引入using System.Collections;

<span style="font-size:18px;">      int[] a=new int[3]{1,2,3};
      ArrayList arrint = new ArrayList();
      arrint.AddRange(a);
      foreach (int temp in arrint)
      {
        Console.WriteLine(temp);
      }
      Console.ReadLine();</span>

再来使用for语句来实现:需要进行显式的强制转换

<span style="font-size:18px;">      int[] a=new int[3]{1,2,3};
      ArrayList arrint = new ArrayList();
      arrint.AddRange(a);
      for (int i = 0; i < arrint.Count;i++ )
      {
        int n = (int)arrint[i];
        Console.WriteLine(n);
      }
      Console.ReadLine();</span>

两个程序输出的结果为:每一行一个元素,分别为1,2,3。
foreach语句对于string类更是简洁:

<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; 

namespace @foreach
{
  class Program
  {
    static void Main(string[] args)
    {
      string str = "This is an example of a foreach";
      foreach (char i in str)
      {
        if (char.IsWhiteSpace(i))
        {
          Console.WriteLine(i);//当i为空格时输出并换行
        }
        else
        {
          Console.Write(i);//当i不为空格时只是输出
        }
      }
      Console.ReadLine();
    }
  }
}</span>

输出的结果为:每一行一个单词,分别为This, is ,an ,example ,of ,a ,foreach。
对于foreach语句的理解,目前也就知道这多了,随着更深层次的学习,或许会有更好的理解吧。

以上就是本文的全部内容,希望对大家的学习有所帮助。

(0)

相关推荐

  • 轻松学习C#的运算符

     一.字符串连接运算符("+")         字符串连接运算符的作用是将两个字符串连接在一起,组成一个新的字符串.在程序中出现("提示字符"+变量),这里起字符连接作用.         用一个例子来说明字符串连接运算符的作用: <span style="font-size:18px;">using System; using System.Collections.Generic; using System.Linq; using

  • c#读写excel文件使用示例

    因为支持csv,所以就一块写上了Workbook,Worksheet using Aspose.Cells(第三方) 把Excel读取到属性对象列表,需要传入对象类型和文件路径.例:List<PropSetCurrency> currencyList = this.GetObjectList<PropSetCurrency>(filePath);注:Excel的表头需要和对象名对应(可无序),且第一列不能为空 把属性对象列表保存到Excel,需要传入对象列表和保存的文件完整路径.例

  • c#读写ini配置文件示例

    其他人写的都是调用非托管kernel32.dll.我也用过 但是感觉兼容性有点不好 有时候会出现编码错误,毕竟一个是以前的系统一个是现在的系统.咱来写一个纯C#的ini格式配置文件读取,其实就是文本文件读写啦.但是我们要做的绝不仅仅是这样 是为了访问操作的方便 更是为了以后的使用. 都知道ini格式的配置文件里各个配置项 其实就是一行一行的文本 key跟value 用等号隔开.像这样:grade=5 .各个配置项又进行分组 同类型的放到一起 称之为section 以中括号([])区分.像这样:[

  • c#读写注册表示例分享

    复制代码 代码如下: //写注册表RegistryKey regWrite;//往HKEY_CURRENT_USER主键里的Software子键下写一个名为"Test"的子键//如果Test子键已经存在系统会自动覆盖它regWrite = Registry.CurrentUser.CreateSubKey("Software\\Test");//往Test子键里添两条数据项,一条名为"Name",另一条名为"Sex"//值分别

  • 轻松学习C#的基础入门

    C#是一种简单的,安全的,稳定的,由C和C++衍生出来的面向对象的编程语言,它在继承C和C++强大功能的同时,去掉了它们的一些复杂性,综合了Visual Studio简单的可视化操作和C++高效的运行效率,以其强大的操作能力,独特的语法风格,创新的语言特性,便捷的面向组件编程的支持,使其成为.NET开发的首选语言,并成为ECMA和ISO的标准规范.        C#和Java有着惊人的相似,主要包括诸如单一继承,接口,与Java几乎同样的语法和编译成中间代码在运行的过程.但是C#和Java有着

  • C#读写操作app.config中的数据应用介绍

    读语句: 复制代码 代码如下: String str = ConfigurationManager.AppSettings["DemoKey"]; 写语句: 复制代码 代码如下: Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 2 cfa.AppSettings.Settings["DemoKey"].Value = "D

  • 轻松学习C#的读写操作

    在看到C#流程控制结构的这一章节,看到了一个很好的关于C#读写操作的一个例子.这个例子就是典型的for迭代语句编写"小九九表". 第一种输出格式的代码: <span style="font-size:18px;"> for (int i = 1; i <=9; i++) { for (int j = 1; j <= i; j++) { Console.Write("{0}*{1}={2}", i, j, i * j); }

  • 轻松学习C#的预定义数据类型

    C#的预定义数据类型包括两种,一种是值类型,一种是引用类型.值类型的变量在内存中是存储在堆栈中的,字面上理解就是直接保存其值,如声明一个属于值类型的整型变量,并给它赋予另一个整型变量的值,则在内存中事先复制一个整型变量的值,然后将其赋予刚刚声明的整型变量,这时内存中就会有两个整型值.引用类型的变量在内存中是直接保存其值的引用.C#语言中大多数复杂数据类型都是引用类型.        先来一个值类型的常量的例子        根据用户输入圆的半径,求圆的面积的代码: <span style="

  • 轻松学习C#的装箱与拆箱

    首先看一看什么是装箱和拆箱?        简单的来说:        装箱就是值类型转换为引用类型:        拆箱就是引用类型转换为值类型.        值类型,包括原类型(Sbyte.Byte.Short.Ushort.Int.Uint.Long.Ulong.Char.Float.Double.Bool.Decimal).枚举 (enum) .结构 (struct).        引用类型包括类.数组.接口.委托.字符串等. 装箱:值类型到引用类型或到此值类型所实现的任何接口类型的

  • 轻松学习C#的foreach迭代语句

    C#语言提供的foreach语句是一个for语句循环的捷径,而且还促进了集合类的更为一致,先来看看它的定义格式: foreach语句的定义格式为:         foreach(类型   变量  in   集合)         {                子语句:         }        每执行一次内嵌语句,循环变量就依次取集合中的一个元素代入其中,在这里,循环变量是一个只读型局部变量,如试图改变其值将会发生编译错误.        foreach语句用于列举出集合中所有的元

  • XML 轻松学习手册(比较不错)第1/3页

    我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章.首先有两点是需要肯定的: 第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会: 第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高.不要害怕和逃避,毕竟我们还年轻. 提纲 本文共分五大部分.分别是XML快速入门,XML的概念,XML的术语,XML的实现,XML的实例分析.最后附录介绍了XML的相关资源.作者站在普通网页设计人员的角度,用平实生动的语言,向您讲述XML的方

  • XML轻松学习手册(三):XML的术语

    提纲: 导言 一.XML文档的有关术语 二.DTD的有关术语 导言 初学XML最令人头疼的就是有一大堆新的术语概念要理解.由于XML本身也是一个崭新的技术,正在不断发展和变化,各组织和各大网络公司(微软,IBM,SUN等)都在不断推出自己的见解和标准,因此新概念漫天飞就不足为奇了.而国内又缺乏权威的机构或组织来对这些术语正式定名,你所看见的有关XML的中文教材大部分是靠作者本身的理解翻译过来的,有些是正确的,有些是错误的,更加妨碍了我们对这些概念的理解和学习. 你下面将要看到的关于XML术语的解

  • XML轻松学习手册(3)XML的术语

    第三章 XML的术语提纲: 导言 一.XML文档的有关术语 二.DTD的有关术语 导言 初学XML最令人头疼的就是有一大堆新的术语概念要理解.由于XML本身也是一个崭新的技术,正在不断发展和变化,各组织和各大网络公司(微软,IBM,SUN等)都在不断推出自己的见解和标准,因此新概念漫天飞就不足为奇了.而国内又缺乏权威的机构或组织来对这些术语正式定名,你所看见的有关XML的中文教材大部分是靠作者本身的理解翻译过来的,有些是正确的,有些是错误的,更加妨碍了我们对这些概念的理解和学习. 你下面将要看到

  • 轻松学习XML教程

    传统上,我们浏览网页,如果加入最新的数据.只能是等我们重新向服务器端请求时才能显示出来. 但是,对于一些时效性很强的网站.传统的这种做法是不能满足的. XML越来越热,关于XML的基础教程网络上也随处可见.可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章.首先有两点是需要肯定的: 第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会: 第

  • JavaScript该如何学习 怎样轻松学习JavaScript

    js给初学者的印象总是那么的"杂而乱",相信很多初学者都在找轻松学习js的途径.我试着总结自己学习多年js的经验,希望能给后来的学习者探索出一条"轻松学习js之路".js给人那种感觉的原因多半是因为它如下的特点: A:本身知识很抽象.晦涩难懂,如:闭包.内置对象.DOM. B:本身内容很多,如函数库.对象库就一大堆. C:混合多种编程思想.它里面不但牵涉面向过程编程思想,又有面向对象编程思想,同时,它的面向对象还和别的编程语言(如:C++,JAVA,PHP)不大一样

  • XML轻松学习手册(一):XML快速入门

    前言 XML越来越热,关于XML的基础教程网络上也随处可见.可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章.首先有两点是需要肯定的: 第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会: 第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高.不要害怕和逃避,毕竟我们还年轻. 提纲 本文共分五大部分.分别是XML快速入门,XML

  • XML轻松学习手册(4)XML语法

    第四章 XML语法 提纲: 一.XML语法规则 二.元素的语法 三.注释的语法 四.CDATA的语法 五.Namespaces的语法 六.entity的语法 七.DTD的语法 通过前面三章的学习,我们已经对什么是XML,它的实现原理以及相关的术语有所了解.接下来我们就开始学习XML的语法规范,动手写自己的XML文档. 一.XML语法规则 XML的文档和HTML的原代码类似,也是用标识来标识内容.创建XML文档必须遵守下列重要规则:规则1:必须有XML声明语句这一点我们在上一章学习时已经提到过.声

  • XML轻松学习手册(1)XML快速入门

    前言 XML越来越热,关于XML的基础教程网络上也随处可见.可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章.首先有两点是需要肯定的: 第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会: 第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高.不要害怕和逃避,毕竟我们还年轻. 提纲 本文共分五大部分.分别是XML快速入门,XML

  • XML轻松学习手册(2)XML概念

    第二章 XML概念 导言 经过第一章的快速入门学习,你已经知道了XML是一种能够让你自己创造标识的语言,它可以将数据与格式从网页中分开,它可以储存数据和共享数据的特性使得XML无所不能.如果你希望深入学习XML,系统掌握XML的来龙去脉,那么我们首先还是要回到XML概念的问题上来.XML(Extensible Markup Language),一种扩展性标识语言."扩展性"标识"语言".每一个词都明确的点明了XML的重要特点和功能.我们来仔细分析: 一. 扩展性 二

随机推荐