如何自定义List <string>的排序?

时间:2016-01-28 23:40:16

标签: c# asp.net sorting

假设我的List<string>值为

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

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

  • 番茄
  • 苹果
  • 香蕉

最终的排序顺序是: *番茄 *苹果 *苹果 *橙子 *橙子 *香蕉 *香蕉

我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

通常,您可以按照自己想要的方式订购IEnumerable,包括List<T>。有几种方法。这些天常见的是使用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])