如何读取Structures的ArrayList中的值?

时间:2010-10-13 12:40:38

标签: c# indexing arraylist structure

我在C#中使用以下代码。我通过使用索引将值添加到arraylist中。现在我想通过仅使用索引来读取arraylist中的值。在下面的示例中,我只是读取arrylist中的所有值,但我想根据索引i中每个元素的索引(例如Customer_Details [i])读取arrylist中的值。

 public struct Cust_Info
        {
            public String Client_Key;
            public String Registration_Key;
            public int Standard;

            public Cust_Info(String C_Key, String Reg_Key, int Std)
            {
                Client_Key = C_Key;
                Registration_Key = Reg_Key;
                Standard = Std;
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            ArrayList Customer_Details = new ArrayList();
            for (int i = 0; i < 1; i++)
            {
                Customer_Details.Insert(i, new Cust_Info("A", "B", 1));
            }

            //for (int i = 0; i < 1; i++)
            //{
                Customer_Details.Insert(1, new Cust_Info("C", "D", 2));
                for (int i = 0; i < 1; i++)
                {
                    ArrayList obj=new ArrayList();
                    //((ArrayListOFStructures.Form1.Cust_Info)((new System.Collections.ArrayList.ArrayListDebugView(Customer_Details)).Items[0])).Client_Key
                    //obj = (ArrayList)Customer_Details[i];
                    foreach (Cust_Info temp in Customer_Details)
                    {
                        //comboBox1.Items.Add(Customer_Details[0].ToString());
                        comboBox1.Items.Add(temp.Client_Key);
                        comboBox1.Items.Add(temp.Registration_Key);
                        comboBox1.Items.Add(temp.Standard);
                    }
                }
        }

在上面的代码中我想只使用结构。如何根据索引读取arrylist中的值。能否请您提供我可以解决上述问题的任何代码或链接?

3 个答案:

答案 0 :(得分:2)

我很困惑;您可以通过以下方式从索引中获取ArrayList项目:

Cust_Info cust = (CustInfo)theList[index];

然而,ArrayList在任何&gt; = .NET 2.0中都非常罕见,List<Cust_Info>会使更多更容易。另外,Cust_Info非常喜欢它应该是class(在.NET中编写struct非常罕见,通常用来表示“值” - 客户不是不是“价值”)。公共领域也非常沮丧。

请注意目前你是(因为它是struct)实际复制 Cust_Info每当你从中获取(或放置它) in)清单;这不一定是你想要的......

答案 1 :(得分:0)

您可以尝试类似

的内容
ArrayList arr = new ArrayList();

for (int iIndex = 0; iIndex < arr.Count; iIndex++)
{
    object o = arr[iIndex];
}

但我宁愿选择

List ClassList.Count Property

答案 2 :(得分:0)

for(int i=0; i<Customer_Details.Count/*or.Length*/; i++)
Customer_Details[i] = something;