我有一个字符串数组和一个列表,数据如下所示,

string[] str = new string[2] { "Prod1", "Prod2" };
        List<RegistryPathData> data = new List<RegistryPathData>
        {
            new RegistryPathData{AppName="test1", RegPath="Prod1|Version"},
            new RegistryPathData{AppName="test2", RegPath="Prod2|Version"},
            new RegistryPathData{AppName="test3", RegPath="Prod3|Version"},
            new RegistryPathData{AppName="test4", RegPath="Prod4|Version"},
            new RegistryPathData{AppName="test5", RegPath="Prod5|Version"},
        };


现在,我想从与字符串数组(prod1&prod2)不匹配的List<RegistryPathData>中排除项目。需要排除以下2个,该怎么办?

new RegistryPathData{AppName="test1", RegPath="Prod1|Version"},
        new RegistryPathData{AppName="test2", RegPath="Prod2|Version"},

最佳答案

像这样使用List.RemoveAll()函数。

data.RemoveAll(d => str.Contains(d.RegPath.Split('|')[0]));

10-06 14:39