我有以下代码给我一个包含路径的文件夹层次结构的堆栈:
var path = @"C:\Folder1\Folder2\Folder3\Folder4\Folder5\FileName.ext"; // String array with an element for each level var folders = path.Split('\\'); var stack = new Stack<string>(); foreach(var folder in folders) stack.Push(folder); var filename = stack.Pop(); // 'FileName.ext' var parent = stack.Pop(); // 'Folder5' var grandParent = stack.Pop(); // 'Folder4'
只是出于好奇,有没有一个更优雅的方式将文件夹数组转换成堆栈没有foreach循环?像(不存在)以下的东西:
var folders = path.Split('\\').Reverse().ToStack();
我期待你的建议!
解决方法
堆< T>有一个
constructor接受IEnumerable< T>