मैं है निम्नलिखित कोड है जो मुझे एक पथ के फ़ोल्डर पदानुक्रम युक्त एक Stack
देता है:सी # में, क्या सरणी को बिना स्टॉप <T> में लूपिंग के रूपांतरित करने का कोई तरीका है?
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
पाश के बिना एक Stack
में folders
सरणी परिवर्तित करने के लिए है ? (न के बराबर) की तरह कुछ निम्नलिखित:
var folders = path.Split('\\').Reverse().ToStack();
मैं अपने सुझाव के लिए तत्पर हैं!
एक विस्तार विधि बनाएं! – duedl0r
@ duedl0r - इसके लिए पहले से ही एक निर्माता है! –
@JakubKonecki: ठंडा! – duedl0r