C# 动态数组arraylist或list读取数据求助

时间:2023-02-12 19:40:37



定义一个动态数组:List<float> a1 = new List<float>(10);
赋值a1.add(0);
这样我认为a1的元素应为10个,5、0.0、0.0、0.0、0.0、0.0、.......
但使用a1[0]不超界,a1[1]就超界了,应该是a1中只有5,
如果按程序要求必须判断动态数组a1[1]是否为被填入数据该怎么判断呢?
可以用别的动态数组,但必须是动态的,因为事先不知道该盛多少数据,有什么好办法呢,求求各位了

11 个解决方案

#1


if( a1.count 。。。。 )

#2


List <float> a1 = new List <float>();

#3


通过个数来判断有多少无素被加入值了.

arraylist.Count

#4


private void button1_Click(object sender, EventArgs e)
{
    List<float> a1 = new List<float>();
    a1.Add(5.0F);
    a1.Add(0);
    a1.Add(0);
    a1.Add(0);

    for (int i = 0; i < a1.Count; i++)
    {
        MessageBox.Show(a1[i].ToString());
    }
}

#5


那怎么表示现在的个数比上次多一个?
因为数组是不断被填入,我也不知道上次是多少啊

#6


List<float> a1;
int listCount = 0; //当前值
private bool IsAdded()
{
    if (a1.Count > listCount)
    {
        listCount = a1.Count;
        return true;
    }
    else return false;
}

#7


在3.0以上,可以给list<float>加个扩展方法来统计,当然,你也可以放外头统计

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ListExMethodNS
{
    public static class ListExMethod
    {
        static int TotalCount = 0;

        public static int AddEx(this List<double> L, double F)
        {
            L.Add(F);
            return ++TotalCount;
        }
    }
}

namespace WindowsFormsApplication24
{
    using ListExMethodNS;

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();


            List<double> L = new List<double>(10);

            MessageBox.Show(L.AddEx(5).ToString());
            MessageBox.Show(L.AddEx(8).ToString());
            MessageBox.Show(L.AddEx(10.5).ToString());
        }
    }
}

#8


不过有一点不明白,你为什么要以开始就指定最大个数?

#9


凭我的水平我实在看不懂您究竟在问什么,郁闷!!赋值a1.add(0); 怎么第一个元素会变5??提醒你,必须要自己初始化!!

#10


分配好空间不见得就直接可用了,就象
int a,b;
a=b;
确保出错

#11


怎么搞的啊?

#1


if( a1.count 。。。。 )

#2


List <float> a1 = new List <float>();

#3


通过个数来判断有多少无素被加入值了.

arraylist.Count

#4


private void button1_Click(object sender, EventArgs e)
{
    List<float> a1 = new List<float>();
    a1.Add(5.0F);
    a1.Add(0);
    a1.Add(0);
    a1.Add(0);

    for (int i = 0; i < a1.Count; i++)
    {
        MessageBox.Show(a1[i].ToString());
    }
}

#5


那怎么表示现在的个数比上次多一个?
因为数组是不断被填入,我也不知道上次是多少啊

#6


List<float> a1;
int listCount = 0; //当前值
private bool IsAdded()
{
    if (a1.Count > listCount)
    {
        listCount = a1.Count;
        return true;
    }
    else return false;
}

#7


在3.0以上,可以给list<float>加个扩展方法来统计,当然,你也可以放外头统计

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ListExMethodNS
{
    public static class ListExMethod
    {
        static int TotalCount = 0;

        public static int AddEx(this List<double> L, double F)
        {
            L.Add(F);
            return ++TotalCount;
        }
    }
}

namespace WindowsFormsApplication24
{
    using ListExMethodNS;

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();


            List<double> L = new List<double>(10);

            MessageBox.Show(L.AddEx(5).ToString());
            MessageBox.Show(L.AddEx(8).ToString());
            MessageBox.Show(L.AddEx(10.5).ToString());
        }
    }
}

#8


不过有一点不明白,你为什么要以开始就指定最大个数?

#9


凭我的水平我实在看不懂您究竟在问什么,郁闷!!赋值a1.add(0); 怎么第一个元素会变5??提醒你,必须要自己初始化!!

#10


分配好空间不见得就直接可用了,就象
int a,b;
a=b;
确保出错

#11


怎么搞的啊?