使用c#lambda过滤.csv文件的目录

时间:2014-03-11 17:59:34

标签: c# lambda

帮我改善下面的lambda,添加另一个条件,如

给我所有.csv没有匹配的.wav文件。例如,说“sample.csv”和“sample.wav”,然后我不想收集“sample.csv”。

Files = new DirectoryInfo(txtStartPath.Text)
           .EnumerateFiles("*.csv")
           .Where(file => file.CreationTime < DateTime.Now.AddDays(-ageOfFile))
           .ToList();

1 个答案:

答案 0 :(得分:1)

您必须先获取wav个文件列表:

var wavFiles = new DirectoryInfo(txtStartPath.Text)
                   .EnumerateFiles("*.wav")
                   .Select(f => Path.GetFileNameWithoutExtension(f))
                   .ToList();

然后您可以将其用作Where条件的一部分:

Files = new DirectoryInfo(txtStartPath.Text)
           .EnumerateFiles("*.csv")
           .Where(f => f.CreationTime < DateTime.Now.AddDays(-ageOfFile))
           .Where(f => !wacFiles.Contains(Path.GetFileNameWithoutExtension(f)))
           .ToList();