在fileinfo列表中获取文件名列表

时间:2013-05-28 08:17:40

标签: c# .net linq list

如何从

获取文件名列表
List<FileInfo> FileInfoList;

使用LINQ?我想要

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

列表。我不想构造一个foreach循环,也不想迭代地添加文件名。

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

如果您只想要FileNames列表中的FileNames,请尝试:

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

如果您想在FileNames中找到完整的文件路径,请尝试

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