我必须根据列表的每个元素中包含的字符串对列表进行排序。
我有一个ribbonDropDown元素,其中包含ribbonDropDownItem的列表。这些项目中的每一个都包含一个字符串,我想从该字符串按字母顺序重新排列RibbonDropDown中的项目位置。 我认为只要考虑到我有一个包含字符串字段的对象列表就可以解决我的问题。
我尝试过这个:
List<myObject> myList = aList;
myList.OrderBy(i => i.Name, StringComparer.Ordinal);
还有
myList.OrderBy(i => i.Name);
我希望结果取决于我使用的方法(OrderBy或OrderBy降序)从a-> z或z-> a排序。 现在,我的结果与操作之前我的列表的顺序相同。
是否可以为此使用此方法,还是应该使用其他方法? 我不想使用for循环。
答案 0 :(得分:2)
您需要将.OrderBy()
的返回值重新分配给原始列表。
myList = myList.OrderBy(i => i.Name).ToList();
.OrderBy()
不会更改现有列表,它会将经过修改的输入列表作为新的IEnumerable<>
返回。