如何在C#中使用Linq对包含特殊字符的字母数字字符串进行排序?排序顺序应该是先包含特殊字符,然后是数字,最后是字母。
示例:
输入- {您好,#测试,@红色,白色,123@Test,@123Test,%54Sun,Dom,左侧}
预期- {@123测试,%54太阳,@红色,#测试,白色,123测试,多姆,你好,左边}
enter image description here
如何在C#中使用Linq对包含特殊字符的字母数字字符串进行排序?排序顺序应该是先包含特殊字符,然后是数字,最后是字母。
示例:
输入- {您好,#测试,@红色,白色,123@Test,@123Test,%54Sun,Dom,左侧}
预期- {@123测试,%54太阳,@红色,#测试,白色,123测试,多姆,你好,左边}
enter image description here
2条答案
按热度按时间tgabmvqs1#
由于标准字符串比较就是这样做的,因此可以使用
OrderBy
:提供:
由于字符串比较与区域性相关,因此根据当前区域性得不同,此比较可能会有所不同.如果希望它与区域性无关,请使用例如
OrderBy(x => x, StringComparer.InvariantCulture)
.lyr7nygr2#
您可以使用IComparer的自定义实现,然后将其传递给
OrderBy
调用。例如:用作:
产生输出: