从列表中删除多余的文件夹路径

我有以下列表,其中包含一系列文件夹路径。其中一些是多余的,所以我需要删除它们,最终列表应该只包含底层文件夹:


初始列表:


var paths = new List<string>

{

    "Pavements/",

    "Pavements/2019_05/",

    "Pavements/2019_06/",

    "Pavements/2019_06/A/",

    "Roads/",

    "Roads/2019_06/"

};

最终列表应如下所示:


paths =

{

    "Pavements/2019_05/",

    "Pavements/2019_06/A/",

    "Roads/2019_06/"

};

即所有上层文件夹路径已被删除。


有谁知道我怎么能做到这一点?我有一种感觉,我需要一种递归方法,但不确定如何去做。我正在使用 C#,但可以用 Java 或类似的东西回答。谢谢。


守着一只汪
浏览 95回答 1
1回答

慕桂英3389331

一种方法是使用 linq 查询,将每个项目与所有其他项目进行比较,并仅在没有其他项目以它开头时才返回该项目:paths&nbsp;=&nbsp;paths.Where(path&nbsp;=>&nbsp;!paths.Any(p&nbsp;=>&nbsp;p&nbsp;!=&nbsp;path&nbsp;&&&nbsp;p.StartsWith(path))).ToList();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java