2012-08-17 29 views
1

如何循环c#中最后一个位置对象的strating对象列表。在这里,我有asp.net mvc 3应用程序,如果目录不可用,我需要根据可用类别创建目录以上载路径。但类别对象列表在儿童类别处于第一位时处于相反顺序。我想在父类别内创建子类别的文件夹。所以我想以相反的顺序启动循环,或者是否有任何函数来颠倒类别对象列表。我有以下的foreach循环:从c中最后一个对象开始循环#

foreach (var item in parentcategory) 
    { 
     categorypath += item.CategoryName + "/" ; 
    } 

任何帮助是极大的赞赏

+0

那么你也有'for'循环 – V4Vendetta 2012-08-17 11:51:40

回答

6

Simpliest方法,但不是最有效的是:

parentcategory.Reverse(); 
foreach (var item in parentcategory) 
{ 
    categorypath += item.CategoryName + "/" ; 
} 

或:

for (int i=parentcategory.Count-1; i>=0; i--) 
{ 
    var item = parentcategory[i]; 
    categorypath += item.CategoryName + "/" ; 
} 
1

实际上,你别不必反向循环。

foreach (var item in parentcategory) 
{ 
    categorypath = item.CategoryName + "/" + categorypath; 
} 

不是非常有效,但它的工作原理。

你也可以考虑使用System.IO.Path。

var categorypath = Path.Combine(categories.Reverse().ToArray()); 
1

而是追加到字符串的,你也可以在前面加上:

foreach (var item in parentcategory) 
    { 
     categorypath = item.CategoryName + "/" + categorypath; 
    } 

注意,在迄今提出的所有解决方案,得到的字符串有一个“/”结尾。

相关问题