我有以下列表,其中包含一系列文件夾路徑。其中一些是多余的,所以我需要刪除它們,最終列表應該只包含底層文件夾:初始列表: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
提交
取消