黑马程序员技术交流社区

标题: 遍历ArrayList数组时异常!如何解决 [打印本页]

作者: §風過無痕§    时间: 2013-9-7 09:49
标题: 遍历ArrayList数组时异常!如何解决
本帖最后由 §風過無痕§ 于 2013-9-8 14:44 编辑

  1. <P>using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Collections;

  6. namespace 遍历ArrayList数组
  7. {
  8.         class Program
  9.         {
  10.              static void Main(string[] args)
  11.             {
  12.                     ArrayList al = GetArrayList();
  13.                     foreach (int item in al)
  14.                     {
  15.                              Console.WriteLine(item.ToString());
  16.                      }
  17.                     Console.ReadKey();
  18.             }

  19.           //声明GetArrayList方法,该方法返回ArrayList实例
  20.          static ArrayList GetArrayList()
  21.          {
  22.                 ArrayList al = new ArrayList();
  23.                 //添加元素
  24.                 al.Add(10);
  25.                 al.Add(15);
  26.                 al.Add(13.98);
  27.                 al.Add("Hell word");
  28.                 al.Add(DateTime.Today);
  29.                 return al;
  30.            }
  31.      }
  32. }</P>
  33. <P>
  34. </P>
复制代码
运行后抛出异常!求解决

作者: §風過無痕§    时间: 2013-9-7 22:01
conan198581 发表于 2013-9-7 10:31
foreach (int item in al)
这一块改成foreach(object item in al)
这样在数据类型转换的时候不会报错!! ...

我只想输出数字怎么解决!
作者: yueyp    时间: 2013-9-7 23:11
foreach (object item in al)
            {
                double i;
                if (double.TryParse(item.ToString(), out  i))
                {
                    Console.WriteLine(item.ToString());
                }
              
            }
这样就好了吧~小白,个人想法
作者: qiumanlover    时间: 2013-9-8 09:54
也可以用正则表达式去匹配是否为数字@"\d+(\.\d+)?
作者: §風過無痕§    时间: 2013-9-8 14:43
qiumanlover 发表于 2013-9-8 09:54
也可以用正则表达式去匹配是否为数字@"\d+(\.\d+)?

在我的字典了  懂正则表达式的都是高手!所以嘛。。。我不会

作者: haxyek    时间: 2013-9-12 11:25
不用正则的:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Collections;

  6. namespace 输出数字
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             ArrayList al = GetArrayList();
  13.             //int item=1;
  14.             //Console.WriteLine(item.GetType());
  15.             foreach (object item in al)
  16.             {
  17.                 if (item.GetType().ToString()== "System.Int32")     //加一个判断类型是否为int32,
  18.                 {
  19.                 Console.WriteLine(item.ToString());
  20.                 }
  21.             }
  22.             Console.ReadKey();
  23.         }

  24.         //声明GetArrayList方法,该方法返回ArrayList实例
  25.         static ArrayList GetArrayList()
  26.         {
  27.             ArrayList al = new ArrayList();
  28.             //添加元素
  29.             al.Add(10);
  30.             al.Add(15);
  31.             al.Add(13.98);
  32.             al.Add("Hell word");
  33.             al.Add(DateTime.Today);
  34.             return al;
  35.         }
  36.     }
  37. }
复制代码





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