微信公眾號:趣編程ACE
關注可了解更多的.NET日常實戰開發技巧,如需源碼 后臺回復 源碼 即可;
如果覺得對你有幫助,歡迎關注
C# Linq中 Where使用技巧
hello 大家好,很開心又能重新分享C#編程開發技巧了,之前因為工作和生活沒有達成一個很好的平衡,導致狀態下滑,好像斷更很久了。在這里不得自我檢討一波,以后繼續分享~大家一起交流呀~
你可能不知道的源碼網站
.Net源碼開源反編譯工具 https://github.com/KirillOsenkov/SourceBrowser
在上面的地址里面有著查看源碼的網頁端工具,很方便大家學習我們巨硬大佬寫的代碼,趕緊Mark吧~
Where 的基本使用
1????????????var?array?=?new[]?{?1,?2,?3,?4,?5,?6,?7,?8,?9,?10?};?//?定義包含十個數據的數組
2????????????var?data?=?array.Where(x?=>?x?%?2==0);?//?Where?條件里面過濾整數
3????????????foreach?(var?item?in?data)
4????????????{
5????????????????Console.WriteLine(item);?//?2,4,6,8,10
6????????????}
自定義Where 擴展函數
首先定義一個靜態類 WhereExtension
1public?static?IEnumerable<T>?NewWhere<T>?(this?IEnumerable<T>?items,?Func<T,bool>?func)2{34???foreach?(var?item?in?items)5????{6???????if(func(item))7?????????{8???????????yield?return?item;?//?yield?關鍵字的用法詳細看上面視頻9?????????}
10????}
11}
IEnumerable && yield 實現一個斐波那契數列(無需遞歸)
1public?static?IEnumerable<int>?GenarateFibonacci(int?n)2{3?????if(n==?0)?yield?break;4?????if?(n?>=?1)?yield?return?1;56?????for?(int?i?=?0,a=1,b=1;?i?<?n-1;?i++)7?????{8????????int?temp?=?a?+?b;9????????a?=?b;
10????????b=?temp;
11????????yield?return?a;
12??????}
13}
時間有限,還有很多語法騷操作并未分享,在后續的文章中會把所學所用的技巧都分享出來,希望可以一起進步!