2013-05-28 29 views
1

我怎樣才能從獲取FileInfo的列表文件名列表

List<FileInfo> FileInfoList; 

文件名列表使用LINQ?我想要

中的所有文件名
List<string> FileNames; 

列表。我不想構造一個foreach循環,也不想迭代地添加文件名。

回答

6

可以使用Select擴展方法:

List<string> FileNames = FileInfoList.Select(x => x.Name).ToList(); 

不過,如果你並不真的需要它是一個List<T>,你可以通過簡單地省略ToList可能利用的LINQ的懶惰執行力方法:

IEnumerable<string> FileNames = FileInfoList.Select(x => x.Name); 

或者如果你喜歡查詢語法:

IEnumerable<string> FileNames = from x in FileInfoList select x.Name; 
0

如果只想在文件名列表中的文件名,請嘗試:

FileInfoList.ForEach(x => 
      FileNames.Add(Path.GetFileName(x.FullName))); 

如果你想完整的文件路徑,文件名中嘗試

FileInfoList.ForEach(x => 
      FileNames.Add(x.FullName));