以字符串形式返回文件名

本文关键字:返回 文件名 字符串 | 更新日期: 2023-09-27 18:28:29

我有一个列表<FileInfo>fileList,我正在尝试制作一个包含文件名的变量,如下代码所示:

var newFileName = fileList.Select(x => x.Name).ToString();

现在我希望newFileName的值是文件名,但我得到的值是:

System.Linq.Enumerable+WhereSelectListIterator`2[System.IO.FileInfo,System.String]

我需要将文件名获取为字符串,因为我想检查是否有另一个List<string>filesTemp已包含newFileName。

if (!filesTemp.Contains(newFileName))

为什么是我提到的值,以及如何获得文件的实际名称?

感谢您的帮助

以字符串形式返回文件名

Select返回一个延迟求值的集合,您需要使用FirstOrDefault从集合中获取第一个值。

var newFileName = fileList.Select( x => x.Name ).FirstOrDefault();

但这只适用于单个文件名,您可以在if语句中使用Any方法来检查fileList中的任何名称是否存在于filesTemp中。

var isInTemp = fileList.Any( x => filesTemp.Contains( x.Name ) );

我们将从属性FileInfo.Name 中获取文件名

由于您尚未在select中确定任何文件,您可以通过以下方式获取文件名。

fileList[0].Name

如果您想根据名称选择文件,

fileList.Select(x => x.Name == name).ToList(); // Select file according to specific name.

更换

var newFileName = fileList.Select(x => x.Name).ToString();

通过

IList<string> newFileName = fileList.Select(x => x.Name).ToList();

它将返回一个文件名列表,然后进行比较

您的问题似乎是关于聚合。

我认为下面的链接应该是你想要的:将所有字符串插入列表<字符串>使用LINQ