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我应该怎么做?
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我应该怎么做?
实现ICompare
先判断长度在比较
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("a02");
list.Add("a10");
{
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);
}
{
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;
}