¥¥¥ 尾为数字的字符串排序小问题
List <string>    list   =   new   List <string> ();   
 list.Add( "a1 "); 
 list.Add( "a2 "); 
 list.Add( "a10 ");   
 list.Sort();   
 foreach   (string   str   in   list) 
                   Console.Out.WriteLine(str);   
 Console.In.Read();   
 输出: 
 a1 
 a10 
 a2   
 我想要的输出是: 
 a1 
 a2 
 a10   
 我应该怎么做?     
------解决方案--------------------Sort(ICompare) 
 实现ICompare 
 先判断长度在比较
------解决方案--------------------try     
 List <string>  list1 = new List <string> ();   
 list1.Add( "a1 "); 
 list1.Add( "a2 "); 
 list1.Add( "a10 ");   
 List <int>  list2 = new List <int> (); 
 foreach (string s in list1) 
 { 
     list2.Add(Convert.ToInt32(s.Substring(1))); 
 }   
 string[] result = list1.ToArray(); 
 Array.Sort(list2.ToArray(), result); 
 foreach (string s in result) 
 { 
     Console.WriteLine(s); 
 } 
 Console.ReadLine();
------解决方案--------------------这样改一下就可以了   
 list.Add( "a01 "); 
 list.Add( "a02 "); 
 list.Add( "a10 ");
------解决方案--------------------public int MyComparison(string x, string y) 
 { 
     int iX = 0; 
     int.TryParse(x.Substring(1), out iX); 
     int iY = 0; 
     int.TryParse(y.Substring(1), out iY); 
     return iX - iY; 
 }   
 private void button1_Click(object sender, EventArgs e) 
 { 
     List <string>  list = new List <string> ();   
     list.Add( "a1 "); 
     list.Add( "a2 "); 
     list.Add( "a10 ");   
     list.Sort(MyComparison);   
     foreach (string str in list) 
         Console.WriteLine(str); 
 } 
------解决方案--------------------public int MyComparison(string x, string y) 
 { 
       Regex regex = new Regex( "(? <number> \\d+$) "); 
             int n1 = int.Parse(regex.Match( str1 ).Groups[ "number "].Value); 
             int n2 = int.Parse(regex.Match( str2 ).Groups[ "number "].Value); 
       return n1-n2; 
 }