我有以下列表,其中包含一系列文件夹路径。其中一些是多余的,所以我需要删除它们,最终列表应该只包含底层文件夹:初始列表: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 或类似的东西回答。谢谢。
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
一种方法是使用 linq 查询,将每个项目与所有其他项目进行比较,并仅在没有其他项目以它开头时才返回该项目:
paths = paths.Where(path => !paths.Any(p => p != path && p.StartsWith(path))).ToList();
添加回答
举报
0/150
提交
取消