c# - System.IO.FileInfo.Equals() 未在 Where LINQ 扩展方法中返回预期结果
问题描述
当尝试从指定文件所在的同一目录返回所有其他文件时,返回的文件包括指定的文件。假设我的网络上的服务器共享中有三个文件:
\\Server\Share\Path\To\file1.ext
\\Server\Share\Path\To\file2.ext
\\Server\Share\Path\To\file3.ext
当我尝试使用对象.Equals()
上的方法过滤掉 file2 时FileInfo
,该文件仍被包含在内。
FileInfo theFile = new FileInfo(@"\\Server\Share\Path\To\file2.ext");
List<FileInfo> allOtherFilesList = theFile.Directory.EnumerateFiles("*").Where(f => !f.Equals(vidFile)).ToList();
//Returned files:
\\Server\Share\Path\To\file1.ext
\\Server\Share\Path\To\file2.ext
\\Server\Share\Path\To\file3.ext
如果我.Equals()
在属性上使用该方法FileInfo.FullName
,我会返回一个文件列表,如我所料
FileInfo theFile = new FileInfo(@"\\Server\Share\Path\To\file2.ext");
List<FileInfo> allOtherFilesList = theFile.Directory.EnumerateFiles("*").Where(f => !f.FullName.Equals(vidFile.FullName)).ToList();
//Returned files:
\\Server\Share\Path\To\file1.ext
\\Server\Share\Path\To\file3.ext
.Equals()
当然,我不理解该方法的某些方面?我会认为FileInfo
代表同一个文件的两个对象是相同的。
解决方案
推荐阅读
- c# - 无法在 ASP.NET Core 中使用 webpack 中间件
- javascript - 在 div 元素的包含文件中未命中调试器点
- python - pandas:分类列错误 pivot_table
- sql - SQL - 传递一个存储 where 子句的变量
- php - mysqli数据库连接不正常
- java - Android 8 USB 设备附加广播接收器
- python-3.x - mongodb如何根据mongo _ids删除_many
- javascript - 如何使用 ngx-bootstrap 在禁用按钮上显示工具提示
- jquery - Jquery 滑块功能不起作用或在浏览器中显示
- java - 我想检索键值作为字符串和值作为双精度值(注意:值可以在删除 % 符号后以双精度存储)