需要有关从C#中的Directory.GetFiles方法中过滤掉某些文件名的好方法的建议

pro*_*ock 1 c# model-view-controller file

在我的MVC应用程序中,我将文件服务器中的文件返回到我的视图中.

为了简化我的问题:假设我从Directory.GetFiles方法返回了file1,file2和file3.我被告知不要返回file2,因此只在我的视图中显示file1和file3.

他们不可避免地会在规则发生变化的时候到来,而file2将需要再次展示.保留当前已过滤文件列表并检查该列表的最明智方法是什么?(不将文件设置为"隐藏"); 我能做的一个想法是将文件名写入存储库并对其进行交叉检查,但我只是担心创建维护灾难...

我有一个更好的解决方案吗?

Yah*_*hia 6

尝试

var ForbiddenList = new string[] {"file2"};

var Result = Directory.GetFiles().Except (ForbiddenList);
Run Code Online (Sandbox Code Playgroud)

编辑 - 根据评论:

缓存结果可以很容易地实现......

var FullList = Directory.GetFiles ();
var ForbiddenList = new string[] {"file2"};
Run Code Online (Sandbox Code Playgroud)

然后您可以选择要显示的内容 - 当您需要显示所有内容然后只需使用时FullList,当您只需要显示现有禁用文件时,FullList.Intersect (ForbiddenList)以及何时需要显示所有内容而不显示您所执行的禁用文件FullList.Except (ForbiddenList).