我有以下代码,它给了我一个Stack包含路径的文件夹层次结构:
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'
Run Code Online (Sandbox Code Playgroud)
出于好奇,是否有更优雅的方式将folders数组转换为Stack无foreach循环?类似于(不存在的)以下内容:
var folders = path.Split('\\').Reverse().ToStack();
Run Code Online (Sandbox Code Playgroud)
我期待着您的建议!
您可以使用
var stack = new Stack(folders);
Run Code Online (Sandbox Code Playgroud)
请注意,这仍然执行循环,它只是为你做.
编辑:您的代码使用Stack但您的标题询问a Stack<T>.这是非通用版本.提醒你:p
| 归档时间: |
|
| 查看次数: |
5016 次 |
| 最近记录: |