如何将列表作为参数传递给方法?

时间:2012-12-24 10:47:50

标签: c# .net

我想将列表作为参数发送给函数。我想做这样的事情:

 public class SchoolClass
{
    private int index = 0;
    private string name = string.Empty;
    private List<Student> students = new List<Student>();

    public List<Student> Students
    {
        get { return students; }
        set { students = value; }
    }

    public void AddStudent(string name, int age)
    {
        Student newStudent = new Student();
        newStudent.Name = name;
        newStudent.Age = age;

        if (Students.Contains(newStudent))
        {
            Students.Add(newStudent);
            Console.WriteLine(newStudent.ToString());
            Console.ReadLine();
        }
    }
    public void RemoveStudent(int studentId)
    {
        Student foundStudent = Students.Where(x => x.Id == studentId).FirstOrDefault();
        if (foundStudent != null)
        {
            Students.Remove(foundStudent);
        }
    }

    public void CheckIfClassEampty(List<Student> students) <----here
    {

    }

最好的方法是什么?

3 个答案:

答案 0 :(得分:1)

由于CheckIfClassEmpty是该类的一部分,因此您根本不需要将列表作为参数传递。您可以访问内部字段和属性,例如

public bool CheckIfClassEmpty()
{
    // access Students or students directly
}

如果您希望将列表作为参数传递,那么您的方法签名是正确的,您只需要传递数据即可。

var school = new SchoolClass();
school.CheckIfClassEmpty(school.Students);

答案 1 :(得分:0)

如果我理解你的问题,那么

您不能将Properties作为方法参数传递,而是传递后备变量。

答案 2 :(得分:0)

很难知道你在问什么,但我怀疑这会达到你想要的效果: -

public bool HasStudents()
{ 
    return students.Any();
}

我已经改变了方法的标题,因为我认为HasStudents可能是你想要实现的更好的名称。