有一个结构
public struct st
{
  double a;
  int b;
  string c;
}声明了几个st的对象,放在arraylist中;
如 Arraylist arr=new Arraylist();
   st st1=new st();
   st1.a=5.2;
   st1.b=2;
   st1.c=3;
   arr.add(st1);   st st2=new st();
   st2.a=5.2;
   st2.b=2;
   st2.c=3;
   arr.add(st2);
   我想在怎么取出结构st1里德元素

解决方案 »

  1.   

    st st1 = arr[0] as st;
      

  2.   

    st test=(st)arr[0];
    Console.WriteLine("stu1中的a为:{0}",test.a);
    Console.WriteLine("stu1中的b为:{0}",test.b);
    Console.WriteLine("stu1中的c为:{0}",test.c);
    另外你的结构中的字段要加public修饰符.
      

  3.   

     ArrayList arr = new ArrayList();
                st st1 = new st();
                st1.a = 5.2;
                st1.b = 2;
                st1.c = "3";
                arr.Add(st1);            st st2 = new st();
                st2.a = 5.2;
                st2.b = 2;
                st2.c = "3";
                arr.Add(st2);
                for (int i = 0; i < arr.Count;i++)
                {
                    if (arr.Contains(st1))
                    {
                        Console.WriteLine(st1.a+"  "+st1.b+"  "+st1.c);
                        break;
                    }
                }
      

  4.   

    //你的程序有些错误,改正后:    public struct st
        {
            public double a;   //你的没有public,不写modifier的话,默认是private
            public int b;
            public string c;
        } ArrayList arr = new ArrayList();   //L是大写
                st st1 = new st();
                st1.a = 5.2;
                st1.b = 2;
                st1.c = "3";      //c的类型是String,你却赋的整数3
                arr.Add(st1);            st st2 = new st();
                st2.a = 5.2;
                st2.b = 2;
                st2.c = "3";
                arr.Add(st2);            for (Int32 i = 0; i < arr.Count; i++)
                {
                    st temp = (st)arr[i];
                    Console.WriteLine(temp.a + " " + temp.b + " " + temp.c);
                }