如何在C#中显示返回的列表

时间:2018-12-14 20:17:54

标签: c#

我想向其他班级显示返回的列表。 我通过传递auto属性类的对象从方法返回列表,但无法显示它... 这是代码。

public class Person
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int Age { get; set; }
     }

 public List<Person> LoadData() {

            List<Person> people = new List<Person>();

            people.Add(new Person { FirstName = "Sara", LastName = "John", Age = 30 });
            people.Add(new Person { FirstName = "Tim", LastName = "Joe", Age = 26 });
            people.Add(new Person { FirstName = "James", LastName = "ted", Age = 29 });

            return people;

        }

//我要显示代码的另一侧是

class Program
    {
        static void Main(string[] args)
        {
            var display = new Person();
            var p = new List<Person>();

            p = display.LoadData();

            foreach (var item in p)
            {
                Console.WriteLine(p);
            }
        }
    }

我没有收到任何错误,但没有显示数据, 它显示

  

System.Generice.Collections.MyConsoleApplication。

4 个答案:

答案 0 :(得分:4)

Console.WriteLine(item.FirstName); 不是Person,并且string不会产生您想要的结果。

所以有两种方法可以解决:

可以这样写:

Console.WriteLine(p);

或者只重写您的Person类的foreach (var item in p) { Console.WriteLine(string.Format("{0} {1}, {2}", item.FirstName, item.LastName, item.Age)); } 方法:

ToString()

在这种情况下(第二种选择),您自己的代码将起作用:

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }

    public override string ToString()
    {
        return string.Format("{0} {1}, {2}", FirstName, LastName, Age);
    }
}

答案 1 :(得分:0)

tour Person类不知道如何打印字符串。您需要覆盖ToString()

public class Person
{
    public override string ToString()
    {
        return $"FirstName = {this.Firstname} \t\t LastName = {this.LastName} \t\t Age = {this.Age}";
    }
}

现在您的foreach将使用覆盖功能打印

foreach (var item in p)
{
     Console.WriteLine(p);
}

答案 2 :(得分:0)

尝试使用:

bind-address = 192.168.0.225

答案 3 :(得分:0)

其他人已经提到了Object.ToString问题。代码中的另一个问题是for循环试图打印集合而不是项目

  

foreach (var item in p) { Console.WriteLine(p); }

应该使用非p的项目

  

foreach(p中的可变项){Console.WriteLine( item .ToString()); }