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

时间:2018-05-17 04:23:22

标签: 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 ...?
}

如何在我的类中实现覆盖ToString()方法,该方法返回默认的List&lt;&gt;给用户的价值

谢谢,谢谢。

1 个答案:

答案 0 :(得分:3)

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

public override string ToString()
{
   return string.Join(", ", item);
}

因此,假设你的Item的ToString()方法只返回你传入的字符串来创建它,你最终会得到一个这样的字符串:iPod, Samsung, Motorola, Nokia

如果您的列表可能会增长很多,并且您只想要预览,那么您可以从前5个项目中构建字符串,如下所示:

public override string ToString()
{
   return string.Join(", ", item.Take(5));
}

顺便说一句,我建议您调用Item属性Items,因为它是一个集合,而不是单个项目。

示例here