IEnumerable 遍歷用法

咋一看到IEnumerable這個接口,我們可能會覺得很神奇,在一般的編程時,基本上我們是想不到去用它的,可是,俗話說得好,存在便是道理,那么,它對我們來說,能夠帶來哪些奇妙的事情呢?
要想弄懂它,我們還是看看其定義吧!
在MSDN上,是這么說的,它是一個公開枚舉數,該枚舉數支持在非泛型集合上進行簡單的迭代。換句話說,對于所有數組的遍歷,都來自IEnumerable,那么我們就可以利用這個特性,來定義一個能夠遍歷數組的通用方法,這樣看來,是不是很神奇呢?
例如:
     public static void Print(IEnumerable myList){int i = 0;foreach (Object obj in myList){if (obj is Student)//這個是類型的判斷,這里Student是一個類或結構
                {Student s=(Student)obj;Console.WriteLine("\t[{0}]:\t{1}", i++, s.Sname);}if (obj is int){Console.WriteLine("INT:{0}",obj);}}Console.WriteLine();}

?

上面,我們可以在foreach中進行多個if判斷,來進行相應的操作。
IEnumerable 的另一個用法是在泛型中的使用。其中用lamda表達式在數組中查詢,具體例子如下:
List<string> fruits = new List<string> { "apple", "orange", "banana" };//去遍歷IEnumerable<string> query = fruits.Where(fruit => fruit.Length == 6);foreach (var q in query){Console.WriteLine(q);}Console.ReadLine();

?

有四個數據,int?a=1,b=2,c=3,d=4,如何輪訓他們?若有一個小于0?或大于10?就報警。
最笨的辦法就是對一個一個if判斷。求比較優的方法?
 private void button1_Click(object sender, EventArgs e){double a= 11.0;double b = 2.0;double c = 0.1;double d = 6.0;bool flag = Waring(a,b,c,d);}static bool Waring(params double[] numbers){if (numbers == null || numbers.Length == 0){throw new ArgumentException();}return numbers.Any(i => i < 0 || i > 10);}

?注意:IEnumerable的any和all 方法 。

any表示確定序列中的任何元素是否都滿足條件,all表示確定序列中的所有元素是否都滿足條件

舉個栗子:

?

        List<string> fruits = new List<string>() { "apple", "banana", "orange" };bool flag = fruits.All(i => { Console.WriteLine(i); return (i.Length > 3); });

?

all時 將輸出結果:apple banana orange

any時將輸出結果:apple

因此 any當序列中有元素滿足條件后,就不接下去判斷了 直接出true

Any是只要有一個滿足結果就是true,否則是false。
All是只要有一個不滿足結果就是false,否則是true。

?

轉載于:https://www.cnblogs.com/zhayunjia/p/4073911.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258030.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258030.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258030.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DELPHI設置枚舉類型size

delphi枚舉類型長度默認為2個字節(單字)&#xff0c;而在C中枚舉為4個字節(雙字)&#xff0c;如果需要跨這兩個平臺編程&#xff0c;傳輸結構時會由于數據長度不一造成災難。 經過查找資料&#xff0c;原來delphi可以通過{$Z} {$Z-} {$Z1} {$Z4} 等宏設置枚舉類型的長度&#x…

Nginx 反向代理 websocket 協議

為什么80%的碼農都做不了架構師&#xff1f;>>> 主要配置內容 server {listen 80;server_name xxx.xxx.xxx;location / {try_files $uri $uri/ /index.html;root /workspace/www;index index.html index.htm;}location ^~/letchat/ {proxy_pass http:/…

oracle中區間大小,Oracle的邏輯結構(表空間、段、區間、塊)——總結

Oracle邏輯結構全景結構圖以下為個人整理的一些關于Oracle邏輯結構的相關數據字典&#xff1a;SELECT * FROMDBA_TABLESPACES--記錄各個表空間的詳細信息SELECT * FROMDBA_TABLESPACE_USAGE_METRICS--記錄各個表空間的使用狀況SELECT * FROMDBA_DATA_FILES --記錄各個數據文件的…

C#3.0之神奇的Lambda表達式和Lambda語句

“Lambda 表達式”是一個匿名函數&#xff0c;它可以包含表達式和語句&#xff0c;并且可用于創建委托或表達式目錄樹類型。所有 Lambda 表達式都使用 Lambda 運算符 >&#xff0c;該運算符讀為“goes to”。該 Lambda 運算符的左邊是輸入參數&#xff08;如果有&#xff09…

[C++] Nested Radical Constant

做高數助教被天煞的大一學生坑了&#xff0c;發現是個未解問題&#xff0c;沒有解析解。。 用C搞了下&#xff0c;就是這樣。。。 No closed-form expression is known for this constant (Finch 2003, p. 8; S. Plouffe, pers. comm., Aug. 29, 2008). /*********************…

api-gateway實踐(03)新服務網關 - 網關請求攔截檢查

參考鏈接&#xff1a;http://www.cnblogs.com/jivi/archive/2013/03/10/2952829.html 一、為什么要攔截檢查請求&#xff1f; 防止重放攻擊、篡改重放&#xff0c;進行使用規格檢查 1、請求可能是重放攻擊 重放攻擊的基本原理就是把以前竊聽到的數據原封不動地重新發送給接收方…

oracle存儲過程關鍵字有哪些,ORACLESTREAMS存儲過程中的一些參數有哪些?

1&#xff0c;maintain_mode參數可取golbal或transportable tablepsaces&#xff0c;當該參數取global時&#xff0c;表示streams進行全庫復制&#xff0c;否則表示streams進行表空間復制&#xff0c;需要在tablespace_names參數中指定待復制的一個或多個表空間。2&#xff0c;…

正則驗證多個郵箱用分號隔開

代碼如下&#xff1a; <script> var str xxxx126.com;123234234qq.com;xxxxxxxxxx.con.cn; var reg /^((([a-z0-9_\.-])([\da-z\.-])\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-])([\da-z\.-])\.([a-z\.]{2,6})))$/; if(reg.test(str)){ alert(1); }else{ …

轉載-使用 Feed4JUnit 進行數據與代碼分離的 Java 單元測試

JUnit 是被廣泛應用的 Java 單元測試框架&#xff0c;但是它沒有很好的提供參數化測試的支持&#xff0c;很多測試人員不得不把測試數據寫在程序里或者通過其它方法實現數據與代碼的分離&#xff0c;在后續的修改和維護上有諸多限制和不便。Feed4JUnit 是開源的基于 JUnit 的擴…

青島智能院助力智慧城市 打造智能產業“黃埔軍校”

作為青島市的主干道之一&#xff0c;山東路的擁堵狀況一直讓人頭疼。近日&#xff0c;因為一種交通組織優化方案的實施&#xff0c;山東路和延吉路的通行率提高了近50%。而研發這種智能管控系統的正是位于青島高新區的青島智能產業技術研究院。截止今年5月份&#xff0c;青島智…

oracle備份歸檔文件,oracle 如何不備份已經備份的歸檔

在Oracle數據庫備份歸檔日志時&#xff0c;通常會保存最近幾天的歸檔日志文件不刪除。如&#xff1a;backup archivelog all;delete noprompt archivelog all completed before sysdate -14; 在本地保留14天的歸檔日志&#xff0e;再備份時&#xff0c;歸檔會重復再備份一次。…

博客遷移指南

1.今天起 博客遷移至farbox 2. 新博客地址&#xff0c;http://yoon.farbox.com轉載于:https://www.cnblogs.com/yoon/p/5003384.html

iOS 第三方登錄 !

http://www.it165.net/pro/html/201409/21854.html 轉載于:https://www.cnblogs.com/Seeulater/p/4076727.html

dp遞推 hdu1978

How many ways Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5422 Accepted Submission(s): 3185 Problem Description這是一個簡單的生存游戲&#xff0c;你控制一個機器人從一個棋盤的起始點(1,1)走到棋盤的…

codeforce-600C. Make Palindrome(貪心)

http://codeforces.com/problemset/problem/600/C&#xff1b; 題意&#xff1a;給你一個小寫字母組成的英文串&#xff0c;將它轉換為回文串&#xff0c;要求&#xff0c;改變的字母的個數最小&#xff0c;移動字母不算改變字母。 所得的串字典序是最小的。最后輸出所得到的串…

oracle觸發器沒有效果,觸發器不起作用,各位幫忙看看什么原因?

測試數據模型如下&#xff1a;Create Table test_c (Id Number,seq Number,state varchar2(5));select a.*,rowid from test_c aInsert Into test_cValues(1011,101,00A);Insert Into test_cValues(1012,101,00A);Insert Into test_cValues(1021,102,00A);Insert Into test_cVa…

10個我最喜歡問程序員的面試問題

最近我拜讀很多文章&#xff0c;都是介紹面試問題的&#xff0c;我真心不理解&#xff0c;面試官代表公司想要聘用的是最優秀的程序員&#xff0c;那就意味著需要想出一些有意義的面試問題。如果你就提一些毫無用處的垃圾問題&#xff0c;那么很容易遺漏很多能干的程序員。當然…

oracle動態性能視圖和靜態,oracle最重要的9個動態性能視圖

v$session v$session_wait (在10g里功能被整合,湊合算1個吧.)v$processv$sqlv$sqltextv$bh (更寧愿是x$bh)v$lockv$latch_childrenv$sysstatv$system_event按組分的幾組重要的性能視圖1。System 的 over viewv$sysstat , v$system_event , v$parameter2。某個session 的當前情況…

glTF格式初步了解

glTF格式初步了解近期看到Qt 3D的進展。偶然了解到了一種新的格式&#xff1a;glTF格式。這樣的格式據說比現有的3D格式更加符合OpenGL應用的須要。這引起了我的好奇。于是我在Qt 3D的外部鏈接中找到了有關glTF的相關鏈接。上海萌夢信息科技有限公司&#xff08;微博&#xff1…

【】局部刷新:

【】局部刷新&#xff1a; //頁面加載時綁定按鈕點擊事件$(function(){ $("#按鈕id").click(function(){ refresh(); });});//點擊按鈕調用的方法function refresh(){ window.location.reload();//刷新當前頁面. //或者下方刷新方法 //par…