1

我如何从中获取文件名列表

List<FileInfo> FileInfoList;

通过使用 LINQ?我想要所有文件名

List<string> FileNames;

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

4

2 回答 2

6

您可以使用Select扩展方法:

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

但是,如果您真的不需要它是 a List<T>,您可以通过简单地省略该ToList方法来利用 Linq 的延迟执行能力:

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

或者,如果您更喜欢查询语法:

IEnumerable<string> FileNames = from x in FileInfoList select x.Name;
于 2013-05-28T08:18:39.003 回答
0

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

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

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

FileInfoList.ForEach(x => 
            FileNames.Add(x.FullName));
于 2013-05-28T08:25:14.697 回答