欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

輕松學(xué)習(xí)C#的foreach迭代語(yǔ)句

 更新時(shí)間:2022年05月06日 14:37:03   投稿:lijiao  
輕松學(xué)習(xí)C#的foreach迭代語(yǔ)句,  C#語(yǔ)言提供了一個(gè)for語(yǔ)句循環(huán)的捷徑,而且還促進(jìn)了集合類的更為一致,就是本文提到的foreach語(yǔ)句,感興趣的小伙伴們可以參考一下

C#語(yǔ)言提供的foreach語(yǔ)句是一個(gè)for語(yǔ)句循環(huán)的捷徑,而且還促進(jìn)了集合類的更為一致,先來(lái)看看它的定義格式:

foreach語(yǔ)句的定義格式為:
        foreach(類型   變量  in   集合)
        {
               子語(yǔ)句;
        }

每執(zhí)行一次內(nèi)嵌語(yǔ)句,循環(huán)變量就依次取集合中的一個(gè)元素代入其中,在這里,循環(huán)變量是一個(gè)只讀型局部變量,如試圖改變其值將會(huì)發(fā)生編譯錯(cuò)誤。

foreach語(yǔ)句用于列舉出集合中所有的元素,foreach語(yǔ)句中的表達(dá)式由關(guān)鍵字in隔開(kāi)的兩個(gè)項(xiàng)組成。in右邊的項(xiàng)是集合名,in左邊的項(xiàng)是變量名,用來(lái)存放該集合中的每個(gè)元素。

foreach語(yǔ)句的優(yōu)點(diǎn)一:語(yǔ)句簡(jiǎn)潔,效率高。

用一個(gè)遍歷數(shù)組元素的例子來(lái)說(shuō)明:

先用foreach語(yǔ)句來(lái)輸出數(shù)組中的元素:

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

再用for語(yǔ)句輸出數(shù)組中元素:

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

這兩種代碼執(zhí)行的結(jié)果是一樣的都是每行一個(gè)元素,共6行,元素分別是1 2 3 4 5 6。

在一維數(shù)組中還無(wú)法體現(xiàn)出foreach語(yǔ)句的簡(jiǎn)潔性,高效率性,但是在二維數(shù)組,甚至多維數(shù)組中體現(xiàn)的更為明顯和方便,所以在C#語(yǔ)言中要用循環(huán)語(yǔ)句提倡使用foreach語(yǔ)句。

foreach語(yǔ)句的優(yōu)點(diǎn)二:避免不必要的因素

在C#語(yǔ)言中使用foreach語(yǔ)句不用考慮數(shù)組起始索引是幾,很多人可能從其他語(yǔ)言轉(zhuǎn)到C#的,那么原先語(yǔ)言的起始索引可能不是1,例如VB或者Delphi語(yǔ)言,那么在C#中使用數(shù)組的時(shí)候就難免疑問(wèn)到底使用0開(kāi)始還是用1開(kāi)始呢,那么使foreach就可以避免這類問(wèn)題。

foreach語(yǔ)句的優(yōu)點(diǎn)三:foreach語(yǔ)句自動(dòng)完成類型轉(zhuǎn)換

這種體現(xiàn)可能通過(guò)如上的例子看不出任何效果,但是對(duì)于ArrayList之類的數(shù)據(jù)集來(lái)說(shuō),這種操作就顯得比較突出。
先用foreach語(yǔ)句來(lái)實(shí)現(xiàn)類型轉(zhuǎn)換操作:在使用ArrayList類時(shí)先要引入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();

再來(lái)使用for語(yǔ)句來(lái)實(shí)現(xiàn):需要進(jìn)行顯式的強(qiáng)制轉(zhuǎn)換

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

兩個(gè)程序輸出的結(jié)果為:每一行一個(gè)元素,分別為1,2,3。
foreach語(yǔ)句對(duì)于string類更是簡(jiǎn)潔:

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);//當(dāng)i為空格時(shí)輸出并換行 
        } 
        else 
        { 
          Console.Write(i);//當(dāng)i不為空格時(shí)只是輸出 
        } 
      } 
      Console.ReadLine(); 
    } 
  } 
}

輸出的結(jié)果為:每一行一個(gè)單詞,分別為This, is ,an ,example ,of ,a ,foreach。
對(duì)于foreach語(yǔ)句的理解,目前也就知道這多了,隨著更深層次的學(xué)習(xí),或許會(huì)有更好的理解吧。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • C#中前臺(tái)線程和后臺(tái)線程的區(qū)別與聯(lián)系

    C#中前臺(tái)線程和后臺(tái)線程的區(qū)別與聯(lián)系

    這篇文章主要介紹了C#中前臺(tái)線程和后臺(tái)線程的區(qū)別與聯(lián)系,本文先講解了它們的區(qū)別,然后給出了一個(gè)例子來(lái)驗(yàn)證這些區(qū)別,需要的朋友可以參考下
    2015-06-06
  • C#中托管DLL和非托管DLL的區(qū)別詳解

    C#中托管DLL和非托管DLL的區(qū)別詳解

    這篇文章主要介紹了C#中托管DLL和非托管DLL的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • c#動(dòng)態(tài)改變webservice的url訪問(wèn)地址

    c#動(dòng)態(tài)改變webservice的url訪問(wèn)地址

    這篇文章主要介紹了c#動(dòng)態(tài)改變webservice的url訪問(wèn)地址,需要的朋友可以參考下
    2014-03-03
  • C#正則表達(dá)式匹配HTML中的圖片路徑,圖片地址代碼

    C#正則表達(dá)式匹配HTML中的圖片路徑,圖片地址代碼

    最近的項(xiàng)目中有個(gè)關(guān)于網(wǎng)頁(yè)取圖的功能需要我自己開(kāi)發(fā),那就是用正則表達(dá)式來(lái)匹配圖片標(biāo)簽,這里簡(jiǎn)單介紹下實(shí)現(xiàn)方法,需要的朋友可以參考下
    2013-12-12
  • C#中HttpWebRequest的用法詳解

    C#中HttpWebRequest的用法詳解

    這篇文章主要介紹了C#中HttpWebRequest的用法,以實(shí)例的形式詳細(xì)敘述了HttpWebRequest類中GET與POST的用法,非常具有參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • C#難點(diǎn)逐個(gè)擊破(2):out返回參數(shù)

    C#難點(diǎn)逐個(gè)擊破(2):out返回參數(shù)

    之前提到ref是將原方法中的參數(shù)影響的結(jié)果返回到調(diào)用它的方法中,out與ref類似,相比之下,ref傳遞參數(shù)的地址,out是返回值。
    2010-02-02
  • C#多線程異步執(zhí)行和跨線程訪問(wèn)控件Helper

    C#多線程異步執(zhí)行和跨線程訪問(wèn)控件Helper

    這篇文章介紹了C#多線程異步執(zhí)行和跨線程訪問(wèn)控件Helper,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#筆記之EF Code First 數(shù)據(jù)模型 數(shù)據(jù)遷移

    C#筆記之EF Code First 數(shù)據(jù)模型 數(shù)據(jù)遷移

    EF 中 Code First 的數(shù)據(jù)遷移網(wǎng)上有很多資料,我這份并沒(méi)什么特別。Code First 創(chuàng)建視圖網(wǎng)上也有很多資料,但好像很麻煩,而且親測(cè)好像是無(wú)效的方法(可能是我太笨,沒(méi)搞成功),我摸索出了一種簡(jiǎn)單有效的方法,這里分享給大家
    2021-09-09
  • C#中DataTable 轉(zhuǎn)換為 Json的方法匯總(三種方法)

    C#中DataTable 轉(zhuǎn)換為 Json的方法匯總(三種方法)

    JavaScript Object Notation (Json)是一種輕量級(jí)的數(shù)據(jù)交換格式,下面小編給大家介紹三種方法實(shí)現(xiàn)DataTable轉(zhuǎn)換成 Json 對(duì)象,感興趣的朋友一起看看吧
    2016-11-11
  • c# 用Dictionary實(shí)現(xiàn)日志數(shù)據(jù)批量插入

    c# 用Dictionary實(shí)現(xiàn)日志數(shù)據(jù)批量插入

    這篇文章主要介紹了c# 用Dictionary實(shí)現(xiàn)日志數(shù)據(jù)批量插入的步驟,幫助大家更好的理解和使用c#中的Dictionary類,感興趣的朋友可以了解下
    2021-02-02

最新評(píng)論