Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何对字符串列表进行排序,其中一个特定值应该是最后一个,而不管默认排序顺序如何?_C#_Sorting - Fatal编程技术网

C# 如何对字符串列表进行排序,其中一个特定值应该是最后一个,而不管默认排序顺序如何?

C# 如何对字符串列表进行排序,其中一个特定值应该是最后一个,而不管默认排序顺序如何?,c#,sorting,C#,Sorting,我正在尝试对C#中的字符串列表进行排序。在列表中有一个名为“TBD”的选项。我想显示最后一个窗口中要显示的“TBD”字符串 示例列表:“橙子、苹果、TBD、芒果、西瓜、西葫芦” 预期清单:“苹果、芒果、橙子、西瓜、西葫芦、待定” 我正在使用CompareTo()方法对字符串列表进行排序 str1.ToLower().CompareTo(str2.ToLower()); 有没有其他方法可以达到同样的效果?您可以使用LINQ: list = list.OrderBy(str => str =

我正在尝试对C#中的字符串列表进行排序。在列表中有一个名为“TBD”的选项。我想显示最后一个窗口中要显示的“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();
您可以使用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();

为每个项目保留一些id,并根据id进行排序。@adminSoftDK:“此方法使用当前区域性执行单词(区分大小写和区域性)比较。”不要这样想。知道。@SriramSakthivel好的,我去掉了误导性的评论:)为每个项目保留一些id,并根据id进行排序。@adminSoftDK:“此方法使用当前区域性执行单词(区分大小写和区域性)比较。”不要思考。知道。@SriramSakthivel好的,我去掉了误导性的评论:)