C# 如何自定义列表排序<;字符串>;?

C# 如何自定义列表排序<;字符串>;?,c#,asp.net,sorting,C#,Asp.net,Sorting,假设我有一个列表,其值为 橙色的 西红柿 苹果 苹果 橙色的 香蕉 香蕉 我想按照以下顺序重新排列这些值: 西红柿 苹果 橙色的 香蕉 最终排序顺序为: *西红柿 *苹果 *苹果 *橙色的 *橙色的 *香蕉 *香蕉 如何实现这一点?通常,您可以按任何方式订购包含列表的IEnumerable。有几种方法。现在一个常见的方法是使用Linq List<string> newList = originalList.OrderBy(e => { your code here })

假设我有一个
列表
,其值为

  • 橙色的
  • 西红柿
  • 苹果
  • 苹果
  • 橙色的
  • 香蕉
  • 香蕉
我想按照以下顺序重新排列这些值:

  • 西红柿
  • 苹果
  • 橙色的
  • 香蕉
最终排序顺序为: *西红柿 *苹果 *苹果 *橙色的 *橙色的 *香蕉 *香蕉


如何实现这一点?

通常,您可以按任何方式订购包含
列表的IEnumerable。有几种方法。现在一个常见的方法是使用Linq

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

向我们展示您尝试过的内容和不适用的内容您指定的最终订单是一个集合,因为您已删除了重复项。这就是你想要的吗?看起来这不是真正的排序,而是寻找唯一的值,在这种情况下,你可以简单地执行
stringList.Distinct()
我只是不知道如何进行自定义排序。我知道如何进行结构化排序(字母数字等),但我在这里迷路了。很抱歉,最后的排序顺序是:西红柿、苹果、苹果、橙色、橙色、香蕉、香蕉
List<string> newList = originalList.Disinct().OrderBy(e => { your code here }).ToList();
.OrderBy(e => e[e.Length-1])