首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对字符串列表进行排序,其中一个特定值应该放在最后,而不考虑默认的排序顺序?

如何对字符串列表进行排序,其中一个特定值应该放在最后,而不考虑默认的排序顺序?
EN

Stack Overflow用户
提问于 2014-11-28 20:27:09
回答 1查看 70关注 0票数 0

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

示例列表:“橙子,苹果,待定,芒果,WaterMelon,西葫芦”

期望列表:“苹果,芒果,橙子,WaterMelon,西葫芦,待定”

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

代码语言:javascript
复制
str1.ToLower().CompareTo(str2.ToLower());

有没有其他方法可以做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2014-11-28 20:28:24

您可以使用LINQ:

代码语言:javascript
复制
list = list.OrderBy(str => str == "TBD").ThenBy(str => str).ToList();

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

如果你想比较不区分大小写:

代码语言:javascript
复制
list = list
    .OrderBy(str => StringComparer.CurrentCultureIgnoreCase.Equals(str, "TBD"))
    .ThenBy(str => str, StringComparer.CurrentCultureIgnoreCase)
    .ToList();
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27188677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档