使用 List<> 覆盖 ToString() 方法

Geg*_*gee -1 c#

到目前为止我已经尝试过:

private List<Item> item = new List<Item>();

    public List<Item> Item { get; set; } //Provide Access to List item

    public Inventory() // Default constructor made to initialize default List<> value
    {
        Item = new List<Item>()
        {
            new Item("iPod"),
            new Item("Samsung"),
            new Item("Motorolla"),
            new Item("Nokia")
        };
    }

override String ToString() {
  return ...?
}
Run Code Online (Sandbox Code Playgroud)

如何在我的类中实现重写 ToString() 方法,该方法将默认 List<> 值返回给用户

Joh*_*ica 5

由于您声明您已经重写了ToString()各个列表项的方法,因此您可以执行以下操作:

public override string ToString()
{
   return string.Join(", ", item);
}
Run Code Online (Sandbox Code Playgroud)

因此,假设您的 Item 的 ToString() 方法仅返回您在创建它时传入的字符串,那么您最终会得到一个如下所示的字符串:iPod, Samsung, Motorola, Nokia

如果您的列表可能会增长到很大,并且您只想预览,则可以使用前 5 项来构建字符串,如下所示:

public override string ToString()
{
   return string.Join(", ", item.Take(5));
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我建议您致电您的Item财产Items,因为它是一个集合而不是单个项目。

例子在这里