如何通过字符串子元素对List<T>进行排序?
how to order List<T> through string child element?
我必须根据列表的每个元素中包含的字符串对列表进行排序。
我有一个包含 ribbonDropDownItem 列表的 ribbonDropDown 元素。这些项目中的每一个都包含一个字符串,我想从中按字母顺序重新排序 ribbonDropDown 中的项目位置。
我认为我的问题可以通过考虑我有一个包含字符串字段的对象列表来解决。
我试过了:
List<myObject> myList = aList;
myList.OrderBy(i => i.Name, StringComparer.Ordinal);
还有
myList.OrderBy(i => i.Name);
我希望结果从 a->z 或 z->a 排序,具体取决于我使用的方法(OrderBy 或 OrderBy 降序)。
现在我的结果与操作前的列表顺序相同。
是否可以使用此方法,还是我应该使用其他方法?
我不想使用 for 循环。
您需要将 .OrderBy()
的 return 重新分配给原始列表。
myList = myList.OrderBy(i => i.Name).ToList();
.OrderBy()
不会更改现有列表,它 return 将修改后的输入列表作为新的 IEnumerable<>
。
我必须根据列表的每个元素中包含的字符串对列表进行排序。
我有一个包含 ribbonDropDownItem 列表的 ribbonDropDown 元素。这些项目中的每一个都包含一个字符串,我想从中按字母顺序重新排序 ribbonDropDown 中的项目位置。 我认为我的问题可以通过考虑我有一个包含字符串字段的对象列表来解决。
我试过了:
List<myObject> myList = aList;
myList.OrderBy(i => i.Name, StringComparer.Ordinal);
还有
myList.OrderBy(i => i.Name);
我希望结果从 a->z 或 z->a 排序,具体取决于我使用的方法(OrderBy 或 OrderBy 降序)。 现在我的结果与操作前的列表顺序相同。
是否可以使用此方法,还是我应该使用其他方法? 我不想使用 for 循环。
您需要将 .OrderBy()
的 return 重新分配给原始列表。
myList = myList.OrderBy(i => i.Name).ToList();
.OrderBy()
不会更改现有列表,它 return 将修改后的输入列表作为新的 IEnumerable<>
。