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

标签 java c#

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

初始列表:

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 或类似的东西回答是可以的。 谢谢。

最佳答案

实现此目的的一种方法是使用 linq 查询,该查询将每个项目与所有其他项目进行比较,并且仅当其他项目均不以该项目开头时才返回该项目:

paths = paths.Where(path => !paths.Any(p => p != path && p.StartsWith(path))).ToList();

关于java - 从列表中删除多余的文件夹路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56744487/

相关文章:

java - 可以将二维 double 组更改为输出字符串吗?

c# - .NET 是否支持 OFB cipherMode?

java - 如何获取给定 LookAndFeel 的可用主题?

java - 一个32个字符的字符串如何变成46个字节?

java - 将 JMenuItem 传递给 Controller ​​类

c# - 多人游戏 : how to sync FPS of different PC?

c# - Include 属性 lambda 表达式 [...] 无效。该表达式应该代表属性访问

c# - ASP MVC 构建对应用程序用户角色导航属性抛出警告?

c# - android 改造使用 asp.net web api [FromBody] 始终为 null

java 不允许运行时可选宽度格式字符串?