我有一个字符串数组,如下所示:
"access"
"Addition"
"account"
"base"
"Brick"
"zammer"
"Zilon"
我希望他们按照以下规则对它们进行排序”
给定字符的大写字母应该放在首位。
大写字母和小写字母应按其自身分组。
因此,输出应为:
"Addition"
"access"
"account"
"Brick"
"base"
"Zilon"
"zammer"
我使用的语言是C#和.Net 4.0。
最佳答案
正确设置OrderBy
/ ThenBy
调用即可解决问题。
按首字母小写顺序排序,先获取所有a
和A
,然后获取所有b
和B
,依此类推。
然后按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/