为什么 ArrayList.Sort() 只按第一位排序?
Why does ArrayList.Sort() sorting by only first digit?
我有一个 C# 程序,它会显示你输入的 10 个数字中的最大数字。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace Ole
{
class Program
{
static void Main(string[] args)
{
ArrayList list = new ArrayList();
for (int i = 0; i < 10; i++)
{
list.Add(Console.ReadLine());
}
list.Sort();
string Max = (string)list[list.Count - 1];
Console.WriteLine("{0}", Max);
Console.ReadLine();
}
}
}
但是,命令 list.Sort() 仅按第一个数字对其进行排序,例如:
24444
1212
2222
555
11
排序如下:
11
1212
2222
24444
555
如何按所有数字对列表进行排序以获得 "real" 最高数字?
使用 List<int>
而不是 ArrayList
,并将控制台输入 (string
) 解析为数字 (int
)。
class Program
{
static void Main(string[] args)
{
List<int> list = new List<int>();
for (int i = 0; i < 10; i++)
{
list.Add(int.Parse(Console.ReadLine()));
}
list.Sort();
int Max = list[list.Count - 1];
Console.WriteLine("{0}", Max);
Console.ReadLine();
}
}
请参阅 ArrayList vs List<> 了解为什么现在使用 List<T>
而不是 ArrayList
。
我有一个 C# 程序,它会显示你输入的 10 个数字中的最大数字。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace Ole
{
class Program
{
static void Main(string[] args)
{
ArrayList list = new ArrayList();
for (int i = 0; i < 10; i++)
{
list.Add(Console.ReadLine());
}
list.Sort();
string Max = (string)list[list.Count - 1];
Console.WriteLine("{0}", Max);
Console.ReadLine();
}
}
}
但是,命令 list.Sort() 仅按第一个数字对其进行排序,例如:
24444
1212
2222
555
11
排序如下:
11
1212
2222
24444
555
如何按所有数字对列表进行排序以获得 "real" 最高数字?
使用 List<int>
而不是 ArrayList
,并将控制台输入 (string
) 解析为数字 (int
)。
class Program
{
static void Main(string[] args)
{
List<int> list = new List<int>();
for (int i = 0; i < 10; i++)
{
list.Add(int.Parse(Console.ReadLine()));
}
list.Sort();
int Max = list[list.Count - 1];
Console.WriteLine("{0}", Max);
Console.ReadLine();
}
}
请参阅 ArrayList vs List<> 了解为什么现在使用 List<T>
而不是 ArrayList
。