我有一个名为comboFileTypes的组合框。里面是一个下拉列表,其中包含:

MP4
MOV
MKV
VOB

按下按钮后,我具有以下代码来扫描目录中的文件:
var files = Directory
    .EnumerateFiles(sourceDIR.Text, "*.*", SearchOption.AllDirectories)
    .Where(s =>
        s.EndsWith(".mp4") ||
        s.EndsWith(".mov") ||
        s.EndsWith(".vob") ||
        s.EndsWith(".MP4") ||
        s.EndsWith(".MOV") ||
        s.EndsWith(".VOB"));

这是硬编码的。我希望改为从组合框动态生成WHERE选项,以便用户在需要时可以添加另一种类型的文件。 (如果可能的话,也不区分大小写,否则我将两种情况都加进去)

任何帮助,将不胜感激。

最佳答案

您可以通过以下方式从ComboBox获取值:

var values = comboFileTypes.Items.Cast<string>()

并像这样使用它:
var files = Directory
    .EnumerateFiles(sourceDIR.Text, "*.*", SearchOption.AllDirectories)
    .Where(s => values.Any(v => s.EndsWith(v, StringComparison.OrdinalIgnorecase));

10-07 18:23