为什么 ArrayList.Sort() 只按第一个数字排序

本文关键字:第一个 数字 排序 ArrayList Sort 为什么 | 更新日期: 2023-09-27 17:55:30

我有 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();
        }
    }
}

但是,命令列表。Sort() 仅按第一个数字对其进行排序,例如:

24444 
1212 
2222 
555 
11 

将排序为:

11
1212
2222
24444
555

如何按所有数字对列表进行排序以获得"真实"的最高数字?

为什么 ArrayList.Sort() 只按第一个数字排序

使用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