关闭

C#中如何申请动态数组

1586人阅读 评论(0) 收藏 举报
分类:

原文出处: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;
            }
        }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1597602次
    • 积分:16230
    • 等级:
    • 排名:第683名
    • 原创:152篇
    • 转载:846篇
    • 译文:0篇
    • 评论:93条
    最新评论