我必须将Directory中的filesystementries与其他文件进行比较,但这个linq查询不起作用,我真的不知道为什么我没有得到它的结果。
List<string> exampleFiles= new List<string>();
exampleFiles.Add("Foo.jpg");
exampleFiles.Add("Bar.jpg");
string ImagesOnFileSystem = @"c:\test";
List<string> filesInDirectory = Directory.GetFiles(ImagesOnfileSystem);
var result = (from imageOnFs in filesInDirectory
from exampleFile in exampleFiles
where InvariantCultureIgnoreCase.Equals(imageOnFs, exampleFile)
select imageOnFs)
.Distinct()
.ToList();
foreach (var item in result)
{
Console.WriteLine(item.ToString());
}
你能告诉我查询中有什么问题吗? 感谢
答案 0 :(得分:4)
GetFileName返回文件名,包括指定目录的路径。但是,您将此与仅包含文件名的列表项进行比较。将where条件更改为:
where Path.GetFileName(imageOnFs) == exampleFile