C# LINQ OrderBy()在列表中失败

C# LINQ OrderBy()在列表中失败,c#,linq,C#,Linq,我有这样一个非常简单的代码。执行后,列表rArray保持不变。应该根据级别对其进行排序,但事实并非如此。有什么想法吗?请帮忙。谢谢这是微软的C#WPF 私有类记录列表 { 公共字符串NodeID{get;set;} 公共整数级别{get;set;} 公共记录列表(字符串ID,整数级别) { this.NodeID=theID; 这个。级别=级别; } } 专用无效测试() { List rArray=新列表(); 新增(新记录列表(“合并”,0)); 添加(新记录列表(“大容量”,2)); 添加

我有这样一个非常简单的代码。执行后,列表rArray保持不变。应该根据级别对其进行排序,但事实并非如此。有什么想法吗?请帮忙。谢谢这是微软的C#WPF

私有类记录列表
{
公共字符串NodeID{get;set;}
公共整数级别{get;set;}
公共记录列表(字符串ID,整数级别)
{
this.NodeID=theID;
这个。级别=级别;
}
}
专用无效测试()
{
List rArray=新列表();
新增(新记录列表(“合并”,0));
添加(新记录列表(“大容量”,2));
添加(新记录列表(“小卷”,2));
添加(新记录列表(“详细记录1”,4));
新增(新记录列表(“详细记录2”,4));
添加(新记录列表(“Midium卷”,2));
OrderBy(RecordList=>RecordList.Level);
}
这个

rArray.OrderBy(RecordList=>RecordList.Level)

不会更改您的数组。它将创建新的IEnumerable集合。 如果您想将其保存到数组中,则必须像smtg一样进行操作

rArray=rArray.OrderBy(RecordList=>RecordList.Level).ToList()

rArray.OrderBy(RecordList=>RecordList.Level)

不会更改您的数组。它将创建新的IEnumerable集合。 如果您想将其保存到数组中,则必须像smtg一样进行操作


rArray=rArray.OrderBy(RecordList=>RecordList.Level).ToList()

我通过执行以下操作解决了此问题。也就是说,OrderBy方法返回某些内容,而不是直接更改源

        IOrderedEnumerable<RecordList> aList = rArray.OrderBy(RecordList => RecordList.Level);
        rArray = aList.ToList<RecordList>();
IOrderedEnumerable aList=rArray.OrderBy(RecordList=>RecordList.Level);
rArray=aList.ToList();

我通过执行以下操作解决了此问题。也就是说,OrderBy方法返回某些内容,而不是直接更改源

        IOrderedEnumerable<RecordList> aList = rArray.OrderBy(RecordList => RecordList.Level);
        rArray = aList.ToList<RecordList>();
IOrderedEnumerable aList=rArray.OrderBy(RecordList=>RecordList.Level);
rArray=aList.ToList();

感谢您的回答。在看到你的回复之前,我发布了我自己的决议。这很相似。这似乎是上面的同一个答案。请识别@tym32167答案。另外,他似乎先发布了答案,如果你能接受他的答案就好了。谢谢tym32167的答案。在看到你的回复之前,我发布了我自己的决议。这是相似的。这似乎是上面相同的答案。请识别@tym32167答案。另外,他似乎先发布了答案,如果你能接受他的答案,那就太好了。