c#,结构体中的Arraylist数组如何实例化?
publicstructArc{publicinta;publicArrayListArcInfo;}定义完了这个结构体之后,我又创建了结构体数组。当我使用当中的ArcI...
public struct Arc
{
public int a;
public ArrayList ArcInfo;
}
定义完了这个结构体之后,我又创建了结构体数组。当我使用当中的ArcInfo成员时,编译器告诉我没有实例化。我想用:ArrayList pt[0].ArcInfo=new ArrayList ()来实例化,没有成功,请问各位大侠如何是好? 展开
{
public int a;
public ArrayList ArcInfo;
}
定义完了这个结构体之后,我又创建了结构体数组。当我使用当中的ArcInfo成员时,编译器告诉我没有实例化。我想用:ArrayList pt[0].ArcInfo=new ArrayList ()来实例化,没有成功,请问各位大侠如何是好? 展开
5个回答
展开全部
ArrayList是一种动态数组,其容量可随着我们的需要自动进行扩充.
ArrayList位于System.Collections命名空间中,所以我们在使用时,需要导入此命名空间.
在Student类的基础上利用ArrayList操作,从而了解ArrayList的用法
public class Student
{
public Student(){}
public Student(String name,int age,String hobby)
{
this.Name = name;
this.Age = age;
this.Hobby = hobby;
}
private String name;
public String Name
{
get{return name;}
set{name = value;}
}
private int age;
public int Age
{
get{return age;}
set{age = value;}
}
private String hobby;
public String Hobby
{
get{return hobby;}
set{hobby = value;}
}
public void say()
{
Console.WriteLine("大家好,我是'{0}',今年{1}岁,我喜欢'{2}'",
this.Name,this.Age,this.Hobby);
}
}
编写测试类,了解ArrayList的方法
using System.Collections;
public class TestStudent
{
public static void main(String args [])
{
//建立ArrayList对象
ArrayList students = new ArrayList();
//实例化几个Student类对象
Student rose = new Student("rose",25,"reading");
Student jack = new Student("jack",28,"singing");
Student mimi = new Student("mimi",26,"dancing");
//利用ArrayList类的add()方法添加元素
students.add(rose);
students.add(jack);
students.add(mimi);
//利用ArrayList的Count属性查看该集合中的元素数量
int number = students.Count;
Console.WriteLine("共有元素" + number + "个");
//读取单个元素,因为存入ArrayList中的元素会变为Object类型,
//所以,在读取时间,
Student stu = students[0] as Student;
stu.say();
//遍历元素 -- 通过索引
for(int i = 0;i < students.Count;i ++)
{
Student a = students[i] as Student;
a.say();
}
//利用foreach循环
foreach(Object o in students)
{
Student b = o as Student;
b.say();
}
//删除元素 通过索引删除
students.removeAt(0);
//删除元素, 通过对象名
students.remove(jack);
//清空元素
students.Clear();
//我们知道,ArrayList的容量会随着我们的需要自动按照一定规律
//进行填充,当我们确定不再添加元素时,我们要释放多余的空间
//这就用到了Capacity属性和TrimtoSize()方法
//利用Capacity属性可以查看当前集合的容量
//利用TrimtoSize()方法可以释放多余的空间
//查看当前容量
int number = students.Capacity;
//去除多余的容量
students.TrimtoSize();
}
}
展开全部
public struct Arc
{
public int a;
public ArrayList ArcInfo;
public Arc()
{
ArcInfo = new ArrayList();
}
}
利用构造自动实例化.
{
public int a;
public ArrayList ArcInfo;
public Arc()
{
ArcInfo = new ArrayList();
}
}
利用构造自动实例化.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的使用方法错误,ArrayList里面哪里有ArcInfo这个成员?分明是Arc里面才有,此外带[]的索引也无法用于Arc类型的表达式,要改成
Arc arc;
arc.ArcInfo = new ArrayList();
Arc arc;
arc.ArcInfo = new ArrayList();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你得引用命名空间System.Collection;然后才可以实例化arraylist数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询