当前位置: 代码迷 >> C# >> C#多个字符串按首字母排序,该怎么处理
  详细解决方案

C#多个字符串按首字母排序,该怎么处理

热度:451   发布时间:2016-05-05 02:53:51.0
C#多个字符串按首字母排序
例如:
Li, si;Zhang, san;Wang, wu;Zhao, liu;An, jing

最后的效果是:
按照L Z W Z A字母排序成  An, jing;Li, si;Wang, wu;Zhao, liu;Zhang, san
只按首字母排序就行,后面的字母不管,相同的首字母自然排序就行或者有方法能按第二,第三,第四个字母排序

谢谢
------解决思路----------------------
通过 分号  分割成数组或者添加List中,使用linq 排序。
------解决思路----------------------
Console.WriteLine(string.Join(";", "Li, si;Zhang, san;Wang, wu;Zhao, liu;An, jing".Split(';').OrderBy(x => x.ToUpper())));

------解决思路----------------------
通过 分号  分割成数组或者添加List中,使用linq 排序。

引用:
通过 分号  分割成数组或者添加List中,使用linq 排序。



            var  result = ("Li, si;Zhang, san;Wang, wu;Zhao, liu;An, jing").Split(';').OrderBy(p=>p).ToList();

------解决思路----------------------
var result2 = str.Split(';').OrderBy(x => x, StringComparer.OrdinalIgnoreCase);

比较字符串尽量不要用ToUpper或ToLower,会生成副本
------解决思路----------------------
string names = "Li, si;Zhang, san;Wang, wu;Zhao, liu;An, jing";
List<string> nameList = names.Split(';').OrderBy(name => name).ToList();
------解决思路----------------------
引用:
@duanzi_peng
如何输出?不太会,谢谢 

想要怎样输出先?

 str.Split(';').OrderBy(p => p).ToList().ForEach(p => {
                Console.WriteLine(p);    
            });

------解决思路----------------------
Array.Sort()即可

foreach(var v in Array.Sort(str.Split(';')){
    Console.WriteLine(v);
}

------解决思路----------------------
我的思路也是:按符号分割,比如空格 逗号。然后返回的数组加到集合中,集合中有排序的方法
  相关解决方案