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

 更新时间:2022年05月06日 14:37:03   投稿:lijiao  
轻松学习C#的foreach迭代语句,  C#语言提供了一个for语句循环的捷径,而且还促进了集合类的更为一致,就是本文提到的foreach语句,感兴趣的小伙伴们可以参考一下

C#语言提供的foreach语句是一个for语句循环的捷径,而且还促进了集合类的更为一致,先来看看它的定义格式:

foreach语句的定义格式为:
        foreach(类型   变量  in   集合)
        {
               子语句;
        }

每执行一次内嵌语句,循环变量就依次取集合中的一个元素代入其中,在这里,循环变量是一个只读型局部变量,如试图改变其值将会发生编译错误。

foreach语句用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成。in右边的项是集合名,in左边的项是变量名,用来存放该集合中的每个元素。

foreach语句的优点一:语句简洁,效率高。

用一个遍历数组元素的例子来说明:

先用foreach语句来输出数组中的元素:

int[,] ints =new int[2,3]{{1,2,3},{4,5,6}}; 
      foreach (int temp in ints) 
      { 
        Console.WriteLine(temp);  
      } 
      Console.ReadLine();

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

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();

这两种代码执行的结果是一样的都是每行一个元素,共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;

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();

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

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();

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

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(); 
    } 
  } 
}

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

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

相关文章

  • C#纯代码实现打字游戏

    C#纯代码实现打字游戏

    这篇文章主要介绍了这篇文章主要为大家详细介绍了C#纯代码实现打字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • C# Winform使用扩展方法实现自定义富文本框(RichTextBox)字体颜色

    C# Winform使用扩展方法实现自定义富文本框(RichTextBox)字体颜色

    这篇文章主要介绍了C# Winform使用扩展方法实现自定义富文本框(RichTextBox)字体颜色,通过.NET的静态扩展方法来改变RichTextBox字体颜色,需要的朋友可以参考下
    2015-06-06
  • C# 获取系统进程的用户名

    C# 获取系统进程的用户名

    这也是应一位网友的要求写的,写的比较仓促,凑合吧
    2009-06-06
  • 使用C#实现MD5加密的方法详解

    使用C#实现MD5加密的方法详解

    在软件开发中,加密是保护数据安全的重要手段之一,MD5(Message Digest Algorithm 5)是一种常用的哈希算法,用于生成数据的摘要或哈希值,本文介绍了如何使用C#语言实现MD5加密的方法,涵盖了基本的使用方式和扩展方法封装,需要的朋友可以参考下
    2024-08-08
  • gridview 显示图片的实例代码

    gridview 显示图片的实例代码

    gridview 图片的二进制数据库存储和显示
    2013-04-04
  • C# MVC 使用LayUI实现下拉框二级联动的功能

    C# MVC 使用LayUI实现下拉框二级联动的功能

    这篇文章主要介绍了C# MVC 如何使用LayUI实现下拉框二级联动,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下
    2020-06-06
  • C#之Socket操作类实例解析

    C#之Socket操作类实例解析

    这篇文章主要介绍了C#的Socket操作类用法,需要的朋友可以参考下
    2014-08-08
  • C# DataTable的详细用法分享

    C# DataTable的详细用法分享

    在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结
    2013-11-11
  • C#中当前时间转为时间戳的3个方法

    C#中当前时间转为时间戳的3个方法

    在计算机应用世界里,无论是为了记录事件的发生时间、保障数据一致性还是提升安全性,时间戳都是不可或缺的重要工具,下面我们就来看看C#中转换当前时间为时间戳有哪些方法吧
    2024-12-12
  • Unity实现画线条功能

    Unity实现画线条功能

    这篇文章主要为大家详细介绍了Unity实现画线条功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03

最新评论