c#存在 ArrayList中的数据,如何查询显示出来?

class Student
{
ArrayList Id = new ArrayList();//把学号、姓名、数学成绩、英语成绩、java成绩都存在动态数组里。
ArrayList Name = new ArrayList();
ArrayList Math = new ArrayList();
ArrayList English = new ArrayList();
ArrayList Java = new ArrayList();
public void Input() //录入成绩信息
{
Console.Write("学号:");
Id.Add(Console.ReadLine());
Console.Write("姓名:");
Name.Add(Console.ReadLine());
Console.Write("数学成绩:");
Math.Add(Console.ReadLine());
Console.Write("英语成绩:");
English.Add(Console.ReadLine());
Console.Write("java成绩:");
Java.Add(Console.ReadLine());
}
public Show()

{
}
}
class Program
{
static void Main(string[] args)
{
Student a = new Student();
a.Input();
a.Show();
Console.ReadLine();
}
}
我在类Student定义了Show()函数,可是我不知道该怎么写它了。
我是想实例化一个Student类的对象a后,根据对象a的学号来调用Show()函数,然后可以显示出 学号、姓名、数学成绩、英语成绩、java成绩
可是,现在这个Show()函数,我不懂写。求助

public class Student
{
public int id; //学号
public string name;
public float score;
public string courseName;
private List<Student> list=new List<Student>();
public Student() { }
private Student(int id, float score, string name, string courseName)
{
this.id = id;
this.name = name;
this.score = score;
this.courseName = courseName;

}
public void Add(int id, float score, string name, string courseName) //加入学生信息
{
list.Add(new Student(id,score,name,courseName));
}
public List<Student> GetStudentList()
{
return list;
}
public List<Student> show(int id) //根据学号查询
{
return list.Where(o => o.id==id).ToList<Student>();

}

}

class Program
{
static void Main(string[] args)
{
//测试
Student student = new Student();
student.Add(1001, 90, "小明", "java");
student.Add(1002, 85, "红", "java");
List<Student> list = student.show(1001);
foreach (Student model in list)
{
Console.WriteLine(model.name);
}

Console.ReadKey();
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-18
(一)我们先建立一个二维数组
listView1.View = View.Details;
listView1.Columns.Add("姓名");
listView1.Columns.Add("语文");
listView1.Columns.Add("数学");
listView1.Columns.Add("科学");
listView1.Columns.Add("英语");
string[,] chengji = new string[4, 5];
chengji[0, 0] = "小王";
chengji[0, 1] = "90";
chengji[0, 2] = "98";
chengji[0, 3] = "88";
chengji[0, 4] = "92";
chengji[1, 0] = "小李";
chengji[1, 1] = "92";
chengji[1, 2] = "94";
chengji[1, 3] = "98";
chengji[1, 4] = "93";
chengji[2, 0] = "小黄";
chengji[2, 1] = "91";
chengji[2, 2] = "92";
chengji[2, 3] = "93";
chengji[2, 4] = "94";
chengji[3, 0] = "小张";
chengji[3, 1] = "95";
chengji[3, 2] = "94";
chengji[3, 3] = "93";
chengji[3, 4] = "92";

(二)下面是几种分列显示二维数组的几种方法。
1、第一种分列显示方法:
listView1.Clear();
for (int i = 0; i < chengji.GetLength(0); i++)
{
ListViewItem bb = new ListViewItem(new string[] { chengji[i, 0], chengji[i, 1], chengji[i, 2], chengji[i, 3], chengji[i, 4] });
listView1.Items.Add(bb);
}
2、第二种分列显示方法:
上面的listview分列显示还可以用下面的方法。
listView1.Clear();
ListViewItem cj;
for (int i = 0; i < chengji.GetLength(0); i++)
{
cj = new ListViewItem(chengji[i,0]);
cj.SubItems.Add(chengji[i, 1]);
cj.SubItems.Add(chengji[i,2]);
cj.SubItems.Add(chengji[i, 3]);
cj.SubItems.Add(chengji[i, 4]);
listView1.Items.Add(cj);
3、第三种分列显示方法:
如果我们把二维数组转化为一维数组(即结合上面两种方法)还可以用下面的方法分列显示。
listView1.Clear();
ListViewItem cjj;
string[] sstr = new string[chengji.GetLength(1)];
for (int i = 0; i < chengji.GetLength(0); i++)
{
for (int j = 0; j < chengji.GetLength(1); j++)
{
sstr[j] = chengji[i, j];
}
cjj = new ListViewItem(sstr);
listView1.Items.Add(cjj);
}
第2个回答  2014-09-03
哈哈,你的这个类和面向对象设计的概念有点距离
以目前的方式,使用foreach循环其中arraylist集合,然后在从其它集合众按照索引去相关的其他值
你把简单的问题复杂化了,就设计一个Arraylist就可以了追问

只设计一个Arraylist的话,该怎么弄?

追答

新建一个对象student,这个包含学号、姓名、数学成绩、英语成绩、java成绩等

创建一个Arraylist泛型集合(可能你不会),或者普通的arraylist集合,把student对象的实例加入就可以了

第3个回答  2014-09-03
public void show(ArrayList al)
{
for (int i = 0; i < al.Count; i++)
{
Console.WriteLine(al[i]);
}
}追问

我在Program中实例化时,该怎么调用你写的这个函数呢。

相似回答