我想在排序后维护列表顺序。例如,用户输入2,4,7,1,0以添加到列表中。在列表中使用静态排序方法后,如何维护此顺序?我尝试使用冒泡排序方法并将原始列表复制到另一个列表变量中,但在将列表传递给下面的排序方法之后,它会对原始列表进行排序,即使它被复制到另一个列表变量中也是如此。
到底有没有?
private List<int> sortedList(List<int> sortedGrads)
{
for (int i = 0; i < sortedGrads.Count - 1; i++)
{
for (int j = 0; j < sortedGrads.Count - 1 - i; j++)
{
if (sortedGrads[j] > sortedGrads[j + 1])
{
int temp = sortedGrads[j];
sortedGrads[j] = sortedGrads[j + 1];
sortedGrads[j + 1] = temp;
}
}
}
return sortedGrads;
}
答案 0 :(得分:1)
要获取排序列表,请使用LINQ并将结果存储在其他变量中,并保持原始列表不变。
private List<int> sortedList(List<int> sortedGrads)
{
List<int> sortedElements = sortedGrads.OrderBy(x => x).ToList();
//use any one from below
return sortedGrads; //returns the original list
return sortedElements; //returns the sorted list
}