[英]How to reverse the order of displaying content of a list?
假設我有一個整數列表。
var myList = new List<int>();
1, 2, 3, 4, 5, ..., 10
是否有任何功能允許我以相反的順序顯示它們,即
10, 9, 8, ..., 1
編輯
public List<Location> SetHierarchyOfLocation(Location location)
{
var list = new List<Location>(7);
var juridiction = location.Juridiction;
if (juridiction > 0)
{
while (juridiction > 0)
{
var loc = repository.GetLocationByID(juridiction);
list.Add(loc);
juridiction = loc.Juridiction;
}
}
return list;
}
由於列表按位置包含位置,因此我希望能夠以相反的順序顯示它。
現在,當我寫返回list.Reversed()時 ,我得到了錯誤。
謝謝你的幫助
var reversed = myList.Reverse()
應該可以解決問題。
編輯:
更正 - 正如OP發現的那樣,List.Reverse就地工作,與Enumerable.Reverse不同。 因此,答案就是myList.Reverse();
- 您不將其分配給新變量。
是否有任何功能允許我以相反的順序顯示它們,即
這取決於您是否要在適當的位置反轉它們,或僅僅生成與基礎序列相反的值序列而不更改列表。
如果是前者,只需使用List<T>.Reverse
。
// myList is List<int>
myList.Reverse();
Console.WriteLine(String.Join(", ", myList));
如果是后者,關鍵是Enumerable.Reverse
:
// myList is List<int>
Console.WriteLine(
String.Join(
", ",
myList.AsEnumerable().Reverse()
)
);
一個美麗的單行。 一定要using System.Linq;
。
要反向執行List <Location>
的foreach循環,您應該使用:
foreach (Location item in myList.Reverse().ToList())
{
// do something ...
}
.Reverse()是就地反轉; 它不會返回新列表。 .Reverse()之后的.ToList()可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.