Linq查询等于

时间:2013-04-29 22:57:31

标签: linq

我必须将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());
}

你能告诉我查询中有什么问题吗? 感谢

1 个答案:

答案 0 :(得分:4)

GetFileName返回文件名,包括指定目录的路径。但是,您将此与仅包含文件名的列表项进行比较。将where条件更改为:

where Path.GetFileName(imageOnFs) == exampleFile