如何自定义排序列表<字符串>

本文关键字:字符串 列表 排序 自定义 | 更新日期: 2023-09-27 18:32:19

假设我有一个List<string>值为

  • 番茄
  • 苹果
  • 苹果
  • 香蕉
  • 香蕉

我想将值重新排列为以下顺序:

  • 番茄
  • 苹果
  • 香蕉

最终排序顺序为:*番茄*苹果*苹果*橙*橙*香蕉*香蕉

我怎样才能做到这一点?

如何自定义排序列表<字符串>

通常,您可以根据需要订购包含List<T>的 IEnumerable。有几种方法。现在常见的一个是使用Linq

List<string> newList = originalList.OrderBy(e => { your code here }).ToList();

您将替换

{ 你的代码在这里 }

使用您自己的代码来提供所需的排序。

如果要从结果中删除重复项,可以使用

List<string> newList = originalList.Disinct().OrderBy(e => { your code here }).ToList();

如果出于某种原因您想按字符串的最后一个字符排序,您的 OrderBy 可能如下所示(注意:为了保持代码段简短,我不考虑字符串为 null 或 String.Empty 的可能性)。

.OrderBy(e => e[e.Length-1])