在 ToString 覆盖方法中显示列表

Show a list in ToString override method

我想知道是否可以在 public override string ToString() 方法中显示一个列表,所以当我列出所有属性时,我也可以在那里看到 List<> 的每个元素。

这是我的ToString()方法:

public override string ToString()
{
    return this.Employees; //Here would be the list
}

这将是具有我希望列出的属性的 Employees 的构造函数。 例如:员工:John Doe,员工:Brian Johnson,员工:Eric Dunn。

public Employee(string fullname)
{
   this.FullName = fullname;
}

您可以尝试覆盖 ToString,如下所示:

public override string ToString()
{
    return string.Join(",", this.Employees
                                .Select(employee => $"Employee: {employee.FullName}"));
}

如果我正确理解您的要求,下面的 类 覆盖 .ToString() 将解决您的问题。在这里,我使用了两个 类,一个包含员工详细信息,另一个包含第一个列表 类

public class Employee
{
    public int EmpCode { get; set; }
    public string FullName { get; set; }

    public override string ToString()
    {
        return String.Format("Employee Code : {0} \n Employee Full Name : {1}", this.EmpCode, this.FullName);
    }
}

public class EmployList
{
    public List<Employee> EmployeeList = new List<Employee>();
    public override string ToString()
    {
        StringBuilder strBuilder = new StringBuilder();
        foreach (var item in EmployeeList)
        {
            strBuilder.AppendLine(item.ToString());
        }

        return strBuilder.ToString();
    }
}

如何使用上面的类

EmployList listObject = new EmployList();
listObject.EmployeeList.Add(new Employee(){EmpCode=1,FullName="suji"});
listObject.EmployeeList.Add(new Employee(){EmpCode=11,FullName="jon"});
listObject.EmployeeList.Add(new Employee(){EmpCode=12,FullName="anu"});
listObject.EmployeeList.Add(new Employee(){EmpCode=13,FullName="achu"});

Console.WriteLine(listObject.ToString());

Working Example

public override string ToString()
{
   StringBuilder t = new StringBuilder();
   foreach(Employee e in this.Employees)
   t.AppendLine (string.Format ("Employee: {0}",e.Fullname));
   return t.ToString ();
}

public override string ToString ()
{
  return String.Join ("Employee: ", this.Employees.Select (e => e.Fullname).ToArray<string>());
}