以字符串形式返回文件名
本文关键字:返回 文件名 字符串 | 更新日期: 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