关闭

C#中如何申请动态数组

2492人阅读 评论(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网站的观点或立场

【C#】用List做动态数组

List.toArray()
  • qq_18995513
  • qq_18995513
  • 2017-06-15 11:13
  • 500

C# 动态数组

C#动态数组ArrayList用法 System.Collections.ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。 一.优点 1。支持自动改变大小的功能 2。可以灵活的插入元素 3。可以灵活的删除元素 二.局限性 跟一般的数组比起来,速度上差些 三....
  • taoerit
  • taoerit
  • 2015-09-27 16:35
  • 2648

C++动态数组

在C++中,使用变长数组,有三种方式: 1、使用new动态分配数组的长度。int *p; int len; p=new int[len]; ............ delete[] p; 2、使用函数 void* malloc(size_t n)动态分配内存空间,然后将首地址赋给一个数组指针。3...
  • u010503121
  • u010503121
  • 2015-05-06 14:39
  • 459

C++创建动态数组

#include using namespace std; int main() { //创建一维动态数组 int *p1; p1=new int[3]; p1[0]=1;p1[1]=2;p1[2]=3; cout<<*p1<<' '<<...
  • u012102997
  • u012102997
  • 2014-10-28 21:14
  • 203

C#中如何向数组中动态添加元素

背景:现需要向数组中循环插入字符串,但C#中的数组是不支持动态添加元素的,只能创建固定大小的数组,该如何解决呢?解决方法:使用泛型list< T >,先将元素存入list中,最后使用ToArray()转成数组。1.string数组转list< string >string[]...
  • qq_35938548
  • qq_35938548
  • 2017-10-24 08:59
  • 2415

C#动态设置数组长度

转自:http://www.cnblogs.com/ysz12300/p/5595907.html 命名空间:using System.Collections;   ArrayList就是传说中的动态数组,它可以动态的增加和减少元素,另外它可以存储任意个数和任意类型的元素。 ...
  • HorseRunningNoStop
  • HorseRunningNoStop
  • 2017-02-26 17:19
  • 2009

C++动态数组

c++的语法: int *array = new int[n]; 就可以建立一个n维的int型动态的数组 访问元素 :*(array+i)=k;即可给第i个元素赋值k;  (也可以把上面的int换为其它类型,但是如果自定义的类型,则需要提供该类型有默...
  • cnctloveyu
  • cnctloveyu
  • 2009-02-18 17:24
  • 534

C++动态数组

C++动态数组 1.变长一维数组      这里说的变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。实现变长数组最简单的是变长一维数组,你可以这样做:     1:  &#...
  • mingzhentanwo
  • mingzhentanwo
  • 2014-10-23 21:01
  • 347

巧在C#中设置多维动态数组,可以动态增加及删除

我认为可以使用ArrayList来实现,它最后可以转换成数组。         例如,下面的例子将arrList2作为一个item添加到arrList1中。     ArrayList   arrList1   = &#...
  • liehuo123
  • liehuo123
  • 2009-05-31 13:40
  • 5221

CSharp 基本知识-数组

1.数组CSharp 的数组从 0 开始声明数组时 "[ ]"放在类型名的后面,而不能放在标示符的后面,放在标示符的后面是别一种语法如 int[] table  而不是  int table[]另一细节是数组的大小不是其类型的一部分,而在C语言中数组...
  • qi_jianzhou
  • qi_jianzhou
  • 2005-10-22 09:46
  • 12962
    个人资料
    • 访问:1835018次
    • 积分:17950
    • 等级:
    • 排名:第615名
    • 原创:159篇
    • 转载:873篇
    • 译文:0篇
    • 评论:102条
    最新评论