C#递归的应用实例详解
C#遞歸的應用是可以讓繁瑣的問題的變得簡單可執行,那么具體的實例就是打開文件的操作,我們知道獲得某一目錄下第一級的所有文件和文件夾列表,很容易辦到:
DirectoryInfo di=new DirectoryInfo(strBaseDir);//strBaseDir是起始目錄,絕對地址?? DirectoryInfo[] diA=di.GetDirectories();//獲得了所有一級子目錄?? FileInfo[] fiA=di.GetFiles();//獲得了所有起始目錄下的文件? 要是想獲得某一目錄下的所有文件和目錄(包含所有子目錄),那該怎么辦呢?目錄都是一層套一層的,我們不能預知某個目錄的深度,只有獲得了父節點,才有可能了解子節點,解決這個問題,只有遞歸這個概念了。
C#遞歸的簡單理解,它就是一個方法,在這個方法里面,再次調用它本身這個方法,從而描述了某一事物運作的深度…… - - 不廢話了,看代碼吧:
C#遞歸實現代碼
public ArrayList al=new ArrayList();?? //我把ArrayList當成動態數組用,非常好用?? public void GetAllDirList(string strBaseDir)?? {?? DirectoryInfo di=new DirectoryInfo(strBaseDir);?? DirectoryInfo[] diA=di.GetDirectories();?? for(int i=0;i<diA.Length;i++)?????? {??? al.Add(diA[i].FullName);?? //diA[i].FullName是某個子目錄的絕對地址,把它記錄在ArrayList中??? GetAllDirList(diA[i].FullName);?? //注意:這里使用C#遞歸的方法?? }?? }? 最后,如何把所有目錄信息從ArrayList中取出來呢?如下:
for(int i=0;i<al.Count;i++)?? {??? textBox1.AppendText(al[i].ToString()+" ");?? //textBox1是容器,拷貝我的代碼,注意要換一個你自己的容器?? }? C#遞歸方法的應用就向你介紹到這里,希望對你理解和學習C#遞歸以及應用有所幫助。
轉載于:https://www.cnblogs.com/bihailantian/archive/2010/09/24/1833882.html
總結
以上是生活随笔為你收集整理的C#递归的应用实例详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 循环不变式及其运用
- 下一篇: IT项目的面向对象分析设计、开发及管理