我有一个字符串数组,如下所示:

"access"
"Addition"
"account"
"base"
"Brick"
"zammer"
"Zilon"


我希望他们按照以下规则对它们进行排序”


给定字符的大写字母应该放在首位。
大写字母和小写字母应按其自身分组。


因此,输出应为:

"Addition"
"access"
"account"
"Brick"
"base"
"Zilon"
"zammer"


我使用的语言是C#和.Net 4.0。

最佳答案

正确设置OrderBy / ThenBy调用即可解决问题。


按首字母小写顺序排序,先获取所有aA,然后获取所有bB,依此类推。
然后按IsLower(firstCharacter),它将首先获取每个字母的大写字母。
然后按整个字符串。




var sorted = source.OrderBy(s => char.ToLower(s[0]))
                   .ThenBy(s => char.IsLower(s[0]))
                   .ThenBy(s => s)
                   .ToList();

关于c# - C#中的字符串排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22005290/

10-11 22:17
查看更多