我有一个一个ArrayList数组 两个元素 是从SQL05数据库中提取出来的  分别存放的是两个数字  我怎么样给这两个元素做差  得到这两个数字的差?比如 ArrayList a=new ArrayList();
a.Add("3");
a.Add("5");
int b=a[1]-a[0];//这样写不会得到我要的2吧  应该怎么做差?

解决方案 »

  1.   

    ArrayList是会装箱的,装箱成object后你a[1]-a[0]编程两个object在减了你要重新拆箱才行
    int b=Convert.ToInt32(a[1])-Convert.ToInt32(a[0]);
      

  2.   

    为什么不用泛型List<int>?不要说你还在用.NET 1.x...你数据库都05了...
      

  3.   

    List<int> num = new List<int>();
    num.Add(3);
    num.Add(5);
    int b=num(1)-num(0)
      

  4.   

    不懂泛型...  哪位给简单介绍下?  我用的是.NET2005  初学C# 
      

  5.   

    3楼的办法好像不行  我存到数组里面的是字符串string类型  不是int类型   string怎么转化为int?
      

  6.   

    楼主无视我……用Convert就可以转换……555……
    你可以用Convert.ToInt32(你的变量)转换
    也可以用Int32.Parse(string)来转换
      

  7.   

    呵呵,楼主可能对你的免疫力较高,不受诱惑啦,呵呵。
    List <int> num = new List <int>(); 
    num.Add(System.Convert.ToInt32("3")); 
    num.Add(System.Convert.ToInt32("5")); 
    int b=num(1)-num(0)
      

  8.   

    /*
     * Created by SharpDevelop.
     * User: swb1
     * Date: 2008-8-3
     * Time: 13:22
     * 
     * To change this template use Tools | Options | Coding | Edit Standard Headers.
     */
    using System;
    using System.Collections;namespace ConsoleDemo
    {
    class Program
    {
    public static void Main(string[] args)
    {
    Console.WriteLine("Hello World!");

    // TODO: Implement Functionality Here
    ArrayList a=new ArrayList();
    a.Add("3");
    a.Add("5");
    int b=0;
    try
    {
    b=Convert.ToInt32 (a[1])-Convert.ToInt32 (a[0]);
    }catch{
    Console.WriteLine("数据类型错误,数组存储了数字类型之外的数据");
    Console.Write("Press any key to continue . . . ");
    return;
    }Console.WriteLine(string.Format("{0} - {1} result is {2}",a[0],a[1],b));
    Console.Write("Press any key to continue . . . ");
    Console.ReadLine();
    }
    }
    }
      

  9.   

    最好使用泛型集合,可以省去转换类型,
    下面的这个是泛型的集合,/*
     * Created by SharpDevelop.
     * User: swb1
     * Date: 2008-8-3
     * Time: 13:22
     * 
     * To change this template use Tools | Options | Coding | Edit Standard Headers.
     */
    using System;
    using System.Collections.Generic;namespace ConsoleDemo
    {
    class Program
    {
    public static void Main(string[] args)
    {
    Console.WriteLine("Hello World!");

    // TODO: Ilement Functionality Here
    List<int> a=new List<int>();
    a.Add(3);
    a.Add(5);
    int b=0;
    try
    {
    b=a[1]-a[0];
    }catch{
    Console.WriteLine("数据类型错误,数组存储了数字类型之外的数据");
    Console.Write("Press any key to continue . . . ");
    return;
    }Console.WriteLine(string.Format("{0} - {1} result is {2}",a[0],a[1],b));
    Console.Write("Press any key to continue . . . ");
    Console.ReadLine();
    }
    }
    }
      

  10.   

    我来吧..
    泛型. 这样说明吧. ArrayList   list   =   new   ArrayList(); 
    这是一个集合. 这里我们定义两个不同类型的变量 
    String   Name   =   "123 "; 
    Int64   Score   =   100; list.Add(Name);   --   保存进入String   Name   变量 
    list.Add(Score);     --   保存进入   Int64   Score   变量 注意这里所有类型的都可以往里放 现在我们把变量取出来   放入另外一个变量中. 
    String   sName   =   list[0].ToString(); 
    Int64   xScore   =   (int)list[1]; 这就取出来了两个变量,   我们注意到这里取出两个变量都需要转换类型,   因为保存到集合里都是Object类型的. 
    如果换作泛型 List <String>   list   =   new   List <String> ();         --   这里定义了一个可以存放String   类型的泛型 我们在存数据的时候 list.Add(Name)     --   存入String   类型的数据.   可以执行. 
    list.Add(Score)     --   存入   Int64   类型的数据.     注意,这里编译器会报错. 通过添加数据我们发现,   泛型不能添加它所制定类型意外的数据类型.   
    也就是说在一定程度上避免了数据混乱.   但是有利也有弊. 下面我们来取出数据. String   sName   =   list[0];       --   和集合不同,   虽然它也是object   类型,   但是取出时不用拆箱.   也就是不用转换类型.   
    通过以上实例说明. 
    集合和泛型都可以存入不限量的数据. 
    但是集合可以存入所有类型的数据,泛型只可以存入于之对应的程序. 
    集合取出数据需要拆箱,而泛型不需要. 泛型作为微软大力推荐的一个新技术,   其实是保证了我们使用当中可能造成的数据混乱的出错率. 
    其次泛型还是和HashTable类似的   Dictionary <K,V>   也是这样的区别.. 
    回答完毕.   
      

  11.   

    int b=a[1]-a[0];//
    change into here:
    int b= convert.Toint32(a[1]) - convert.toint32(a[0]);
      

  12.   

    大哥,你加进去的是string的变量,做差你也要用int什么的吧......甩个string 进去干嘛??
      

  13.   

    范型是类型暂位符.相当于你打印值的时候那种console.write("{0}",1);
      

  14.   


    看我帖子说的好不好  传进去的值是从SQL05中取出来的  那个值就是string类型我有什么办法?