代码之家  ›  专栏  ›  技术社区  ›  Nikolay Atanasov

类方法不返回列表

  •  0
  • Nikolay Atanasov  · 技术社区  · 6 年前

    我有一个包含另一个类的列表的类,我想将它返回到主类,但是由于某种原因,我什么也没有收到,我很确定我已经正确地填写了列表! 这是我的主班

        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            Poll currpoll = new Poll();
            for (int i = 0; i < n; i++)
            {
                string[] Input = Console.ReadLine().Split();
                Person person = new Person(Input[0], int.Parse(Input[1]));
                currpoll.Add(person);
    
            }
            currpoll.Order();
            List<Person> final = currpoll.Getlist();
            foreach (var person in final)
            {
                Console.WriteLine(person);
    
            }
        }
    

    我的“个人课”:

    class Person
    {
        public Person(string name, int age)
        {
    
        }
        private string name;
        private int age;
    
        public int Age
        {
            get { return this.age; }
            set { this.age = value; }
        }
        public string Name
        {
            get { return this.name; }
            set { this.name = value; }
        }
    }
    

    我上节课上的清单

    class Poll
    {
        private List<Person> people = new List<Person>();
    
        public void Add(Person member)
        {
            if (member.Age > 30)
            {
                this.people.Add(member);
            }
        }
        public void Order()
        {
            this.people.OrderBy(x => x.Name);
        }
    
        public List<Person> Getlist()
        {
            return this.people;
        }
    }
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   Daniel Reyhanian    6 年前

    问题是,你没有提出这个人性格的价值观。

    public Person(string name, int age)
    {
        this.name = name;
        this.age = age;
    } 
    

    请注意,您还可以重写Person类中的ToString(),以便获得良好的输出:

    public override string ToString()
    {
        return "Name: " + this.name + ", Age: " + this.Age;
    }
    

    用这个 link 更多信息。

    如果这个答案对你有帮助,请将它标记为解决方案。

        2
  •  -3
  •   Mihai Banu    6 年前

    可能问题出在这里:

    Person person = new Person(Input[0], int.Parse(Input[1]));
    

    也许你想这样做:

    Person person = new Person(Input[i], int.Parse(Input[i+1]));
    

    程序的输入可能会使它发光。