说我有这个清单
List<string> sampleList = new List<string>
{
"C:\\Folder1",
"D:\\Folder2",
"C:\\Folder1\\Folder3",
"C:\\Folder111\\Folder4"
};
我想删除其他文件夹中包含的路径,例如,我们有C:\ Folder1和C:\ Folder1 \ Folder3
该列表的第三个条目应该消失,因为C:\ Folder1包含C:\ Folder1 \ Folder3
在.net框架中有哪些功能或者我必须自己编写算法?
最佳答案
假设它不是一个庞大的清单。
List<string> sampleList = new List<string>
{
"C:\\Folder1",
"D:\\Folder2",
"C:\\Folder1\\Folder3",
"C:\\Folder111\\Folder4",
"C:\\Folder1"
};
string sep = Path.DirectorySeparatorChar.ToString();
List<string> shortList = sampleList.Where (l =>
sampleList.Where(s =>
l.StartsWith(s + (s.EndsWith(sep) ? String.Empty : sep)) && s != l).Count() == 0
).Distinct().ToList();
关于c# - C#从列表中删除冗余路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3013041/