C# 是否可能包含多维数组的其他信息?
例如: 学校分为两组,每组有5名学生C# 是否可能包含多维数组的其他信息?,c#,arrays,C#,Arrays,例如: 学校分为两组,每组有5名学生 int[][]groups=new int[2,5]数组显示相应学生的年龄 这是第一组的第一个学生,“他12岁了”和“他的名字叫亚历克斯”。像这样,我可以包含(或调用)其他信息吗 组[2,1]=11二班第一名学生 [一] 是否可能在数组元素上存储其他信息 如果类型是int[][],则不会。但是,您可以做的是定义一个类。比如: public class Child { private string name; private int age;
int[][]groups=new int[2,5]
数组显示相应学生的年龄
这是第一组的第一个学生,“他12岁了”和“他的名字叫亚历克斯”。像这样,我可以包含(或调用)其他信息吗
组[2,1]=11
二班第一名学生
[一] 是否可能在数组元素上存储其他信息
如果类型是int[][]
,则不会。但是,您可以做的是定义一个类。比如:
public class Child {
private string name;
private int age;
public Child(string name, int age) { // constructor
this.name = name;
this.age = age;
}
}
然后可以声明一个2dPerson
数组,如:
Child[,] groups = new Child[2,5];
groups[0,0] = new Child("Alex",12);
Child[,]组=新孩子[2,5];
组[0,0]=新生儿(“Alex”,12岁)代码>
第二条语句调用构造函数并创建一个新的子对象
补充说明:
- 默认情况下,索引的偏移量为零。因此分配给
组[2,1]
是不可能的;及
int[][]
与int[,]
不同
创建一个Student
类。不要将数组设为“int”,而是创建一个包含“int”和其他信息的类。请注意,这与数组的性质无关。你基本上是在问int
是否可以存储数字以外的任何东西:不,它不能。在现实世界中,我们通常不使用多维数组。我们创建表示所需数据的类,然后该类的实例可以放在一个数组中(或者更常见的是一个列表
)。@JonSkeet我想他是说,例如,可以使用不同的位掩码从单个int值存储/检索不同的数据。例如,前8位为8位数字,第9位为性别的位标志(例如),依此类推..谢谢。而且,如果我处理的是大数据,我会在测试标准中使用它们的数字(年龄),可以调用每个类吗?@TomooMGL:调用每个类是什么意思?我的意思是,这需要很长时间吗?是不是。@TomooMGL:这比使用int
s要花一点时间,因为它会在堆上分配,等等。但是由于数组包含2x5=10个元素,这不是问题。只有在处理超过100万个元素的情况下,性能才会成为一个问题。