如何对字符串列表进行排序,尽管默认排序顺序,但一个特定值应该是最后一个

本文关键字:排序 一个 最后一个 顺序 列表 字符串 默认 | 更新日期: 2023-09-27 18:32:25

我正在尝试在 C# 中对字符串列表进行排序。在列表中有一个名为"TBD"的选项。我想显示要在最后一个显示的"TBD"字符串。

示例列表:"橙子、苹果、待定、芒果、西瓜、西葫芦"

预期清单:"苹果、芒果、橙子、西瓜、西葫芦、待定"

我正在使用CompareTo()方法来对字符串列表进行排序。

str1.ToLower().CompareTo(str2.ToLower());

还有其他方法可以实现相同的目的吗?

如何对字符串列表进行排序,尽管默认排序顺序,但一个特定值应该是最后一个

您可以使用 LINQ:

list = list.OrderBy(str => str == "TBD").ThenBy(str => str).ToList();

它之所以有效true是因为 (1) 大于 false (0)。

如果要不区分大小写进行比较:

list = list
    .OrderBy(str => StringComparer.CurrentCultureIgnoreCase.Equals(str, "TBD"))
    .ThenBy(str => str, StringComparer.CurrentCultureIgnoreCase)
    .ToList();