LINQ遍歷全面概述
作者:佚名
這里介紹用LINQ遍歷一個指定目錄并輸出為XML,以及介紹LINQ非常強大,既然這么強大,為什么不更進一步呢?我要遍歷一下目錄里的制定格式的文件應該怎么做呢?
LINQ有很多值得學習的地方,這里我們主要介紹LINQ遍歷,包括介紹用LINQ遍歷一個指定目錄并輸出為XML等方面。
今天看了一天的LINQ,給自己布置一個問題:用LINQ遍歷一個指定目錄并輸出為XML。
寫出的代碼如下:
- public static XElement ToXml(this DirectoryInfo dir)
- {
- XElement root = new XElement("Dir",
- new XAttribute("Name", dir.Name),
- from subDir in dir.GetDirectories()
- select DirToXml(subDir),
- from file in dir.GetFiles()
- select new XElement("File", file.Name));
- return root;
- }
使用的時候,你可以這樣:
- DirectoryInfo dir = new DirectoryInfo(path);
- XElement dirdirXml = dir.ToXml();
OK,搞定。可以看出,LINQ非常強大,既然這么強大,為什么不更進一步呢?我要遍歷一下目錄里的制定格式的文件應該怎么做呢?比如說我要找出目錄里的所有的mp3于是可以寫出這樣的代碼
- public static XElement ToXml(this DirectoryInfo dir, string searchPattern)
- {
- XElement root = new XElement("Dir",
- new XAttribute("Name", dir.Name),
- from subDir in dir.GetDirectories()
- select DirToXml(subDir),
- from file in dir.GetFiles(searchPattern)
- select new XElement("File", file.Name));
- return root;
- }
- //使用的時候是這樣
- DirectoryInfo dir = new DirectoryInfo(path);
- XElement dirdirXml = dir.DirToXml("*.mp3");
輕松搞定,更進一步,如果我要找多個格式的文件呢?比如說要找出目錄里面的圖片文件(jpg, bmp, gif…)Ok,沒問題,可以寫成這樣:
- public static XElement ToXml(this DirectoryInfo dir, string[] searchPatterns)
- {
- XElement root = new XElement("Dir",
- new XAttribute("Name", dir.Name),
- from subDir in dir.GetDirectories()
- select DirToXml(subDir),
- from pattern in searchPattern
- from file in dir.GetFiles(pattern)
- select new XElement("File", file.Name));
- return root;
- }
- 使用的時候可以這樣:
- DirectoryInfo dir = new DirectoryInfo(path);
- XElement dirdirXml = dir.DirToXml(new[] { "*.mp3", "*.txt" });
以上介紹用LINQ遍歷一個指定目錄并輸出為XML。
【編輯推薦】
責任編輯:佚名
來源:
IT168