原文出处:https://zhidao.baidu.com/question/1603714274790064067.html
【提问】
我想申请一个数组,自己输入数,然后对数组进行排序,求大神教如果可以把排序的方法也说了吧
最佳答案
用List就可以了,List<类型> list=new List<类型>(); 就可以动态的添加删除了。 如果需要转化为数组,类型[] array=list.ToArray();就可以了。
其他回答
C#中并没有你想要的不定长数组,我给你两个解决方案:
第一种是让用户一次性输入一个用“,”分隔的字符串,如“1,2,3,4,5”,然后后台根据元素的个数确定数组的长度:
| 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
 | 
Console.WriteLine("Please input numbers in format (1,2,3,4,...100)");            var input = Console.ReadLine();            var strings = input.Split(',');            var numbers = new double[strings.Length];            for (int i = 0; i < strings.Length; i++)            {                numbers[i] = Convert.ToDouble(strings[i]);            }            bool flag = true;            double temp;            int numLength = numbers.Length;            //sorting an array            for (int i = 1; (i <= (numLength - 1)) && flag; i++)            {                flag = false;                for (int j = 0; j < (numLength - 1); j++)                {                    if (numbers[j + 1] > numbers[j])                    {                        temp = numbers[j];                        numbers[j] = numbers[j + 1];                        numbers[j + 1] = temp;                        flag = true;                    }                }            }            Console.WriteLine(string.Join(",", numbers)); | 
第二种方法可以用List<double>来实现动态加载新的元素:
| 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
 | 
     var input = string.Empty;            var numberList = new List<double>();            while (!input.Equals("Sort"))            {                Console.WriteLine("Please input a number, input \"Sort\" to start sorting the array.");                input = Console.ReadLine();                if (!input.Equals("Sort"))                {                    numberList.Add(Convert.ToDouble(input));                }            }            Console.WriteLine("Original array: {0}", string.Join(",", numberList));            numberList.Sort(new DoubleComparer());            Console.WriteLine("Sorted array: {0}", string.Join(",", numberList));            Console.WriteLine("Sorting"); | 
其中的DoubleComparer的定义为:
| 
 
1 
2 
3 
4 
5 
6 
7 
 | 
class DoubleComparer : IComparer<double>        {            public int Compare(double x, double y)            {                return x > y ? -1 : x == y ? 0 : 1;            }        } |