日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

.net3.5下使用LINQ递归算法实现简洁代码

發(fā)布時間:2025/3/19 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .net3.5下使用LINQ递归算法实现简洁代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  .net framework 3.5 有了Linq使得對委托有了更多的支持,下面讓我們來看幾個有趣的示例.通常情況下,我們實現(xiàn)一個遞歸算法要寫一個函數(shù),同時還有調(diào)用的幾行代碼.

  現(xiàn)在來看使用Linq的如何實現(xiàn)簡潔的代碼,代碼如下:

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.IO; 6 using NUnit.Framework; 7 8 namespace WindowsFormsApplication1 9 { 10 /// <summary> 11 /// TestRecursionWithLINQ 12 /// </summary> 13 /// <remark>Author : PetterLiu 2009-03-29 11:28 http://wintersun.cnblogs.com </remark> 14 [TestFixture] 15 public class TestRecursionWithLINQ 16 { 17 18 /// <summary> 19 /// Factorials this instance. 20 /// </summary> 21 /// <remark>Author : PetterLiu 2009-03-29 11:28 http://wintersun.cnblogs.com </remark> 22 [Test] 23 public void Factorial() 24 { 25 Func<int, int> fib = null; 26 fib = n => (n == 1) ? 1 : fib(n - 1) * n; 27 Console.WriteLine(fib(5)); 28 } 29 30 /// <summary> 31 /// Fibonaccis this instance. 32 /// </summary> 33 /// <remark>Author : PetterLiu 2009-03-29 11:28 http://wintersun.cnblogs.com </remark> 34 [Test] 35 public void Fibonacci() 36 { 37 Func<int, int> fib = null; 38 fib = n => n > 1 ? fib(n - 1) + fib(n - 2) : n; 39 Console.WriteLine(fib(6)); 40 } 41 42 43 /// <summary> 44 /// Recursions the get files. 45 /// </summary> 46 /// <remark>Author : PetterLiu 2009-03-29 11:27 http://wintersun.cnblogs.com </remark> 47 [Test] 48 public void RecursionGetFiles() 49 { 50 var RecGetFiles = 51 Functional.Y<string, IEnumerable<string>> 52 (f => d => Directory.GetFiles(d).Concat(Directory.GetDirectories(d).SelectMany(f))); 53 54 foreach (var f in RecGetFiles(Directory.GetCurrentDirectory())) 55 Console.WriteLine(f); 56 57 } 58 59 /// <summary> 60 /// Factorial2s this instance. 61 /// </summary> 62 /// <remark>Author : PetterLiu 2009-03-29 11:28 http://wintersun.cnblogs.com </remark> 63 [Test] 64 public void Factorial2() 65 { 66 var dd = Functional.Y<int, int>(h => m => (m == 1) ? 1 : h(m - 1) * m); 67 Console.WriteLine(dd(5)); 68 } 69 } 70 71 /// <summary> 72 /// Functional 73 /// </summary> 74 /// <remark>Author : Wes Dyer</remark> 75 public class Functional 76 { 77 /// <summary> 78 ///delegate Func<A, R> 79 /// </summary> 80 private delegate Func<A, R> Recursive<A, R>(Recursive<A, R> r); 81 /// <summary> 82 /// Ys the specified f. 83 /// </summary> 84 /// <typeparam name="A"></typeparam> 85 /// <typeparam name="R"></typeparam> 86 /// <param name="f">The f.</param> 87 /// <returns></returns> 88 public static Func<A, R> Y<A, R>(Func<Func<A, R>, Func<A, R>> f) 89 { 90 Recursive<A, R> rec = r => a => f(r(r))(a); 91 return rec(rec); 92 } 93 } 94 }

Factorial是階乘,接著是Fibonacci數(shù)列.之后把這個定義為一個名叫Funcional類,其中包含一個static方法.Factorial2使用這個類再實現(xiàn)階乘,是不是簡單的多.接著是RecursionGetFiles一個實際的應(yīng)用,遞歸遍歷文件夾取得文件名列表.像樹型結(jié)構(gòu)算法都可以用它來實現(xiàn),是不是很有趣?

其中幾個關(guān)鍵方法可以參考:
Func<(Of <(T, TResult>)>) 委托
封裝一個具有一個參數(shù)并返回 TResult 參數(shù)指定的類型值的方法。
Enumerable.SelectMany<(Of <(TSource, TResult>)>) 方法 (IEnumerable<(Of <(TSource>)>), Func<(Of <(TSource, IEnumerable<(Of <(TResult>)>)>)>))
將序列的每個元素投影到 IEnumerable<(Of <(T>)>) 并將結(jié)果序列合并為一個序列。
Enumerable.Concat<(Of <(TSource>)>) 方法
連接兩個序列。

Author: Petter Liu??? http://wintersun.cnblogs.com

總結(jié)

以上是生活随笔為你收集整理的.net3.5下使用LINQ递归算法实现简洁代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 高清av一区二区 | 天天操导航 | 综合在线亚洲 | 亚洲av永久无码国产精品久久 | 高潮无码精品色欲av午夜福利 | 亚洲精品国产精品乱码不99热 | 欧美草比视频 | 亚洲综合视频一区 | 张柏芝亚洲一区二区三区 | 4388成人网 | 加勒比一区二区 | 一个人在线观看www软件 | 朝鲜美女黑毛bbw | 深夜福利网 | 二区影院 | 亚洲精品日日夜夜 | 日韩精品一区在线视频 | 色视频综合 | 青青草午夜 | 日韩视频h| 人妻熟女aⅴ一区二区三区汇编 | 色婷婷777| 黄一区二区三区 | 天堂av亚洲av国产av电影 | jizz日韩 | 性插视频在线观看 | 91麻豆一区二区 | 黄色免费视屏 | 国产超碰 | 玖玖在线视频 | 中文一区在线 | 欧美日韩精品一区二区在线播放 | 狠狠操五月天 | 成人在线观看网站 | a天堂中文在线观看 | av在线播放观看 | 欧洲日韩一区二区三区 | 黄色小视频在线免费观看 | 灌篮高手全国大赛电影 | 伊人福利视频 | 日韩视频在线一区二区 | 国产男女视频 | 精品处破女学生 | 肉肉视频在线观看 | 台湾swag在线观看 | 91精品福利 | av片在线观看免费 | 成人久久久精品国产乱码一区二区 | 成人亚洲网站 | 黄毛片在线观看 | 波多野结衣二区 | 欧美视频免费 | 一二三区精品 | 日本不卡免费 | 亚洲夜色 | 国产20页 | 日韩精品中文字幕一区 | 天堂av网在线| 国产精品果冻传媒潘 | 久久国产精品-国产精品 | 国产精品对白刺激久久久 | 久久久久久成人 | 国产原创麻豆 | 蜜桃tv在线观看 | 亚洲男人影院 | 极品美女销魂一区二区三区 | 亚洲男女在线 | 日本在线播放一区 | 九九热精彩视频 | 久草一区 | 日韩一级片免费 | 屁屁影院一区二区三区 | 免费午夜视频在线观看 | 毛片.com | 大奶毛片 | 人妻中文字幕一区二区三区 | 欧美偷拍精品 | 极品美女开粉嫩精品 | 亚洲精品天天 | 久久亚洲私人国产精品va | 五月婷婷丁香在线 | 精品久操 | 日韩精品一区二区三区视频在线观看 | 在线黄色av | 韩国女同性做爰三级 | 欧洲视频一区二区三区 | 激情拍拍拍 | 国产色网 | 精品久久人人妻人人做人人 | 91视频在线免费观看 | 狠狠激情| 中日韩毛片 | 久草一本| 国产吃瓜黑料一区二区 | 黄色一级片免费播放 | 欧美性受xxxx黑人xyx | 亲吻刺激视频 | 色婷婷免费视频 | 久久精品网|