【发布时间】:2017-05-13 08:48:53
【问题描述】:
以下是我尝试实现并能够对其进行排序但需要弄清楚忽略其中的特殊字符的逻辑
我的逻辑:
- 列表中的反转字符串
- 升序排列
- 再次反向排序的字符串 &
-
最后用~分隔符作为字符串返回。
List<String> inputLst= new List<String>() { "Bananas!", "Cherry2", "Mango","Apples", "Grape$", "Guava" }; List<String> sortList = new List<String>(); List<String> outputList = new List<String>(); foreach (String str in inputLst) { sortList.Add(new String(str.ToCharArray().Reverse().ToArray())); } sortList.Sort(); foreach (String str in sortList) { outputList.Add(new String(str.ToCharArray().Reverse().ToArray())); } Return String.Join("~", outputList);
我得到的输出是Bananas!~Grape$~Cherry2~Guava~Mango~Apples
预期的输出应该是Guava~Grape$~Mango~Bananas!~Apples~Cherry2
谁能建议我通过忽略特殊字符按最后一个字符对列表进行排序的优化解决方案?在这里,我使用 2 个列表进行字符串反转,可以以更有效的方式完成吗? 注意:请不要使用 LINQ。
【问题讨论】:
-
为什么不想编写自定义比较器?
标签: c# string sorting generic-list