黑马程序员技术交流社区

标题: 在C#中如何让用户输入的内容放到数组中 [打印本页]

作者: 苟于伟    时间: 2013-3-30 21:00
标题: 在C#中如何让用户输入的内容放到数组中
本帖最后由 苟于伟 于 2013-3-31 14:48 编辑

比如用户A输入3,用户B输入8,然后把它放到数组中

例如
  1. int a=3;
  2. int b=8;

  3. //然后呈现
  4. int[] number={3,8};
复制代码

作者: 马毅    时间: 2013-3-30 21:11
可以用下表访问数组,当然也可以赋值咯
作者: 张振    时间: 2013-3-30 21:42
本帖最后由 张振 于 2013-3-30 21:44 编辑

两种方式 用int 数组和ArrayList
第一种方法
  static void Main(string[] args)
        {
            Console.WriteLine("输入第一个数字");
            int First = int.Parse(Console.ReadLine());
            Console.WriteLine("输入第二个数字");
            int Second = int.Parse(Console.ReadLine());
            int[] arr = new int[2];
            arr[0] = First;
            arr[1] = Second;
            foreach (int number in arr)//遍历数组元素
                Console.WriteLine(number);
            Console.ReadKey();
第二种方法 不过用ArrayList前 还需要调用 System.Collections命名空间。

        static void Main(string[] args)
        {
            Console.WriteLine("输入第一个数字");
            int First = int.Parse(Console.ReadLine());
            Console.WriteLine("输入第二个数字");
            int Second = int.Parse(Console.ReadLine());
            ArrayList List = new ArrayList();
            List.Add(First);
            List.Add(Second);
            foreach (int number in List)
                Console.WriteLine(number);
            Console.ReadKey();



作者: 回首、后_街    时间: 2013-3-30 21:44
使用数组下标得到用户输入的值
作者: 郑丹丹1990    时间: 2013-3-30 21:50
张振 发表于 2013-3-30 21:42
两种方式 用int 数组和ArrayList
第一种方法
  static void Main(string[] args)

这个方法有局限性,若吧数组定义为List<>不是会更好吗?动态的增长。
作者: 曾玉锋    时间: 2013-3-30 21:50
对于没有指定数组长度的输入,我们一般用集合来存取。在没有学习集合的情况下,可以先用一个string类型的变量来存放所有用户的输入,然后变成数组
Console.WriteLine("请输入数字");
string  str=Console.ReadLine();
Console.WriteLine("请输入数字");
str+=","+Console.ReadLine();
//....n个人输入
//然后分割字符串,如果想得到数字类型的数组(输入一定要全部是数字,而且转化的时候需要进行判断)
string[] strs=str.Split(',');
//得到string数组以后,可以根据你想要的结果进行相应的操作


作者: 张正强    时间: 2013-3-30 21:57
数组初始化的时候必须给定长度,因此数组是不能动态添加数据的(水平有限,不知道这样说对不),但是可以使用ArrayList,或者使用键值集合Dictionary<>,代码如下:
        static void Main(string[] args)
        {
            Dictionary<int, int> dict = new Dictionary<int, int>();
            for (int j = 0; j < 5; j++)
            {
                Console.Write("请输入数字:");
                int num = Convert.ToInt32(Console.ReadLine());
                dict.Add(j, num);
            }
            foreach (KeyValuePair<int, int> item in dict)
            {
                Console.Write(item.Value);
            }
            Console.ReadKey();
        }
作者: 郑丹丹1990    时间: 2013-3-30 22:00
  1.   int a = Convert.ToInt32(textBox1.Text);//textBox1输入a
  2.             int b = Convert.ToInt32(textBox2.Text);//textBox2输入b
  3.             List<int> nums = new List<int>();//nums就是最后合成的数组
  4.             foreach (Control c in this.Controls)
  5.             {
  6.                 if (c is TextBox)
  7.                 {
  8.                     nums.Add(Convert.ToInt32(c.Text));
  9.                 }
  10.             }
复制代码
代码不足之处:用户输入数字个数受到限制了。
这个不足谁能否给解决下????
或者在一个文本框中输入任意个整数,用逗号隔开,利用曾玉锋 提到的方法把数字一一取出,再依次加入动态数组。
   
作者: 郑丹丹1990    时间: 2013-3-30 22:06
经过试验论那个方法可以:
  1. string str = textBox1.Text;//用于输入数字的文本框(必须用逗号隔开各个数组)
  2.             string[] strs = str.Split(',');
  3.             int[] numbers = new int[strs.Length];//numbers用来存放最终数组
  4.             for (int i = 0; i < strs.Length; i++)
  5.             {
  6.                 numbers[i] = Convert.ToInt32(strs[i]);
  7.             }
复制代码

作者: DWC_5101    时间: 2013-3-31 00:14
可以借助ArrayList实现,如以下代码:

            //使用ArrayList来缓存输入的内容(这里用直接赋值演示)
            ArrayList al = new ArrayList();
            //输入3,将3添加到ArrayList中
            int a = 3;
            al.Add(a);
            //输入8,将8添加到ArrayList中
            int b = 8;
            al.Add(b);
            //调用ArrayList的ToArray方法,将之转成数组
            int[] number = (int[])al.ToArray(typeof(Int32));
作者: 潘迪海    时间: 2013-3-31 00:43
利用FOR循环把值赋值给数组  

        int renshu, ;
            Console.WriteLine("请输入班级人数");
            renshu = Convert.ToInt32(Console.ReadLine());
            int[] chengji = new int[renshu];     \\定义一个chengji 数组
            for (int i = 0; i < chengji.Length; i++)
            {
                Console.WriteLine("请输入第{0}个学生的成绩",i+1);
                chengji[i] = Convert.ToInt32(Console.ReadLine());   //利用循环语句对chengji数组赋值

作者: .netNo1    时间: 2013-6-19 16:31
int[] num=new int[2];




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2