Print List of objects to Console

后端 未结 3 1290
刺人心
刺人心 2020-12-03 19:35

I created a list with Listobj object type. And added a set of values to the object.

How do I print the Listobj objects from the newlist in an increasing age fashion.

相关标签:
3条回答
  • 2020-12-03 20:18

    You can use Linq to order your list:

    foreach (Listobj item in newlist.OrderBy(x => x.Age))
        Console.WriteLine(item);
    

    Also, a few improvements:

    • You should override ToString()
    • Use Auto-Implemented Properties

    Which gives:

    public class Listobj
    {
        public int Age { get; set; }
        public string Name { get; set; }
    
        public override string ToString()
        {
            return string.Format("My name is {0} and I'm {1} years old.", Name, Age);
        }
    }
    
    0 讨论(0)
  • 2020-12-03 20:23

    I would override ToString in your Listobj class.

    public class Listobj
    {
        private int age;
        private string name;
    
        public int Age
        {
            get { return age; }
            set { age = value; }
        }
    
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
    
        public override string ToString()
        {
            return "Person: " + Name + " " + Age;
        }
    }
    

    Then you can print like so:

    foreach (var item in newlist.OrderBy(person => person.Age)) Console.WriteLine(item);
    
    0 讨论(0)
  • 2020-12-03 20:23

    You can do with using the IEnumerable varaible, and then sorting them in ascending order using linq

    IEnumerable<Listobj> temp = newlist;
    temp = from v in temp
           orderby v.age ascending
           select v;
    
    foreach (Listobj item in temp)
    {
        Console.WriteLine(item.Name +"with the age"+ item.Age);
    }
    
    Console.ReadLine();
    
    0 讨论(0)
提交回复
热议问题