最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析在內(nèi)部循環(huán)中Continue外部循環(huán)的使用詳解

 更新時間:2013年05月14日 10:12:40   作者:  
本篇文章是對在內(nèi)部循環(huán)中Continue外部循環(huán)的使用進行了詳細的分析介紹,需要的朋友參考下

有時候你希望在一個嵌套循環(huán)的外層循環(huán)中執(zhí)行Continue操作。例如,假設(shè)你有一連串的標準,和一堆items。

并且你希望找到一個符合每個標準的item。

復制代碼 代碼如下:

match = null;
foreach(var item in items)
{
  foreach(var criterion in criteria)
  {
    if (!criterion.IsMetBy(item)) //如果不符合標準
    {
        //那么說明這個item肯定不是要查找的,那么應該在外層循環(huán)執(zhí)行continue操作
    }
  }
  match = item;
  break;
}

有很多方法可以實現(xiàn)這個需求,這里有一些:

方法#1(丑陋的goto):使用goto語句。

復制代碼 代碼如下:

match = null;
foreach(var item in items)
{
  foreach(var criterion in criteria)
  {
    if (!criterion.IsMetBy(item))
    {
      goto OUTERCONTINUE;
    }
  }
  match = item;
  break;

OUTERCONTINUE:

}


如果不符合其中的一個標準,那么goto OUTCONTINUE:,接著檢查下一個item。

方法#2(優(yōu)雅,漂亮):

當你看到一個嵌套循環(huán),基本上你總是可以考慮將內(nèi)部的循環(huán)放到一個它自己的方法中:

復制代碼 代碼如下:

match = null;
foreach(var item in items)
{
  if (MeetsAllCriteria(item, critiera))
  {
    match = item;
    break;
  }
}

MeetsAllCriteria方法的內(nèi)部很明顯應該是
復制代碼 代碼如下:

foreach(var criterion in criteria)
  if (!criterion.IsMetBy(item))
    return false;
return true;

方法#3,使用標志位:
復制代碼 代碼如下:

match = null;
foreach(var item in items)
{
 foreach(var criterion in criteria)
 {
   HasMatch=true;
   if (!criterion.IsMetBy(item))
   {
     // No point in checking anything further; this is not
     // a match. We want to “continue” the outer loop. How?
    HasMatch=false;
    break;
   }
 }
 if(HasMatch) {
    match = item;
    break;
 }
}

方法#4,使用Linq。
復制代碼 代碼如下:

var matches = from item in items
              where criteria.All(
                criterion=>criterion.IsMetBy(item))
              select item;
match = matches.FirstOrDefault();

對于在items中的每個item,都檢查是否滿足所有的標準。

相關(guān)文章

  • c# wpf如何使用Blend工具繪制Control樣式

    c# wpf如何使用Blend工具繪制Control樣式

    這篇文章主要介紹了c# wpf如何使用Blend工具繪制Control樣式,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#中的數(shù)組作為參數(shù)傳遞所引發(fā)的問題

    C#中的數(shù)組作為參數(shù)傳遞所引發(fā)的問題

    這篇文章主要介紹了C#中的數(shù)組作為參數(shù)傳遞所引發(fā)的問題 的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • C#?Random類隨機函數(shù)實例詳解

    C#?Random類隨機函數(shù)實例詳解

    這篇文章主要為大家介紹了C#?Random類隨機函數(shù)實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Unity實現(xiàn)ScrollView滑動吸附功能

    Unity實現(xiàn)ScrollView滑動吸附功能

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)ScrollView滑動吸附功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • C# list<T>去重的實現(xiàn)

    C# list<T>去重的實現(xiàn)

    List集合在開發(fā)過程中很常見,經(jīng)常我們要對該集合進行一系列操作,本文主要介紹了C# list<T>去重的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • C#.Net基于正則表達式抓取百度百家文章列表的方法示例

    C#.Net基于正則表達式抓取百度百家文章列表的方法示例

    這篇文章主要介紹了C#.Net基于正則表達式抓取百度百家文章列表的方法,結(jié)合實例形式分析了C#獲取百度百家文章內(nèi)容及使用正則表達式匹配標題、內(nèi)容、地址等相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • C#操作DataTable的實現(xiàn)步驟

    C#操作DataTable的實現(xiàn)步驟

    本文主要介紹了C#操作DataTable的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • C#中對稱加密算法的踩坑日常記錄

    C#中對稱加密算法的踩坑日常記錄

    這篇文章主要給大家介紹了關(guān)于C#中對稱加密算法的踩坑日常記錄,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C#具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • C#中ZipHelper 壓縮和解壓幫助類

    C#中ZipHelper 壓縮和解壓幫助類

    本文介紹C#實現(xiàn)壓縮與解壓縮幫助類ZipHelper,主要是通過ICSharpCode.SharpZipLib 類庫實現(xiàn)的。
    2016-05-05
  • C#使用OpenCvSharp4庫讀取電腦攝像頭數(shù)據(jù)并實時顯示

    C#使用OpenCvSharp4庫讀取電腦攝像頭數(shù)據(jù)并實時顯示

    OpenCvSharp4庫是一個基于.Net封裝的OpenCV庫,本文主要給大家介紹了C#使用OpenCvSharp4庫讀取電腦攝像頭數(shù)據(jù)并實時顯示的詳細方法,感興趣的朋友可以參考下
    2024-01-01

最新評論

卢龙县| 英吉沙县| 云梦县| 桦川县| 白河县| 康定县| 南城县| 资中县| 攀枝花市| 富裕县| 肥东县| 秭归县| 曲水县| 汾阳市| 织金县| 崇义县| 漳浦县| 淮安市| 庆元县| 泽库县| 贵州省| 宜都市| 娄底市| 大丰市| 和平县| 侯马市| 瑞金市| 吉首市| 五家渠市| 南华县| 武川县| 延吉市| 加查县| 红河县| 隆化县| 公主岭市| 元阳县| 久治县| 巧家县| 岗巴县| 从江县|