ArrayList中存放不同类型的数据

时间:2021-04-22 19:34:47
例如arr是一个动态数组(ArrayList),其中可以放进去多种类型的数据,如: 
arr.Add(12);   // 整数
arr.Add("你好!");  //字符串

这有什么实用价值呢?谁这么用过,给个例子?

6 个解决方案

#1


实用价值就是可以灵活操作数组,但是会有装箱和拆箱的问题。
如果元素的类型都一样的话通常都用list<T>

#2


谈不上什么实用价值,在.net研发阶段(2000年左右),这是一个很基本的数据结构。

这就好比说清朝的辫子,你问“今天有什么实用价值?”这个问题,你应该先能够分析到那个时代的整体设计再说。

至少从2005 以后,这种东西在编写新程序中就应该禁用。

#3


使用价值也得看具体需求。 比如:绑定数据集合,可以使用List<class>,Datatable来统一你的数据类型class或者DataRow。就不会考虑使用ArrayList。 但也有某种需求,比如“拼装”信息时,需要通过不同的对象来组装一个新的对象。比如:一个车头,车身,车尾,由三者组成一个车辆的信息,这时我就会考虑使用ArrayList。

#5


现在我比较喜欢List<dynamic>

#6


使用泛型存储不同类型的数据列表
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        class Types<T>
        {
            public T Num; //声明编号字段 
            public T Name; //声明姓名字段 
            public T Sex; //声明性别字段 
            public T Age; //声明年龄字段 
            public T Birthday; //声明生日字段 
            public T Salary; //声明薪水字段 
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Types<object> Exte = new Types<object>();//实例化泛型类对象
            //为泛型类中声明的字段进行赋值,存储不同类型的值
            Exte.Num = 1;
            Exte.Name = "董发明";
            Exte.Sex = "女";
            Exte.Age = 27;
            Exte.Birthday = Convert.ToDateTime("1988-06-08");
            Exte.Salary = 1300.45F;
            //将泛型类中各字段的值显示在文本框中
            textBox1.Text = Exte.Num.ToString();
            textBox2.Text = Exte.Name.ToString();
            textBox3.Text = Exte.Sex.ToString();
            textBox4.Text = Exte.Age.ToString();
            textBox5.Text = Exte.Birthday.ToString();
            textBox6.Text = Exte.Salary.ToString();
        }
    }

#1


实用价值就是可以灵活操作数组,但是会有装箱和拆箱的问题。
如果元素的类型都一样的话通常都用list<T>

#2


谈不上什么实用价值,在.net研发阶段(2000年左右),这是一个很基本的数据结构。

这就好比说清朝的辫子,你问“今天有什么实用价值?”这个问题,你应该先能够分析到那个时代的整体设计再说。

至少从2005 以后,这种东西在编写新程序中就应该禁用。

#3


使用价值也得看具体需求。 比如:绑定数据集合,可以使用List<class>,Datatable来统一你的数据类型class或者DataRow。就不会考虑使用ArrayList。 但也有某种需求,比如“拼装”信息时,需要通过不同的对象来组装一个新的对象。比如:一个车头,车身,车尾,由三者组成一个车辆的信息,这时我就会考虑使用ArrayList。

#4


#5


现在我比较喜欢List<dynamic>

#6


使用泛型存储不同类型的数据列表
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        class Types<T>
        {
            public T Num; //声明编号字段 
            public T Name; //声明姓名字段 
            public T Sex; //声明性别字段 
            public T Age; //声明年龄字段 
            public T Birthday; //声明生日字段 
            public T Salary; //声明薪水字段 
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Types<object> Exte = new Types<object>();//实例化泛型类对象
            //为泛型类中声明的字段进行赋值,存储不同类型的值
            Exte.Num = 1;
            Exte.Name = "董发明";
            Exte.Sex = "女";
            Exte.Age = 27;
            Exte.Birthday = Convert.ToDateTime("1988-06-08");
            Exte.Salary = 1300.45F;
            //将泛型类中各字段的值显示在文本框中
            textBox1.Text = Exte.Num.ToString();
            textBox2.Text = Exte.Name.ToString();
            textBox3.Text = Exte.Sex.ToString();
            textBox4.Text = Exte.Age.ToString();
            textBox5.Text = Exte.Birthday.ToString();
            textBox6.Text = Exte.Salary.ToString();
        }
    }