如何显示对象列表的内容?

时间:2015-12-26 16:03:41

标签: c#

我是新手,所以越简单越好。我创建了一个类,其中包含项目的详细信息,例如项目名称,价格和描述。我创建了一个构造函数,以便在创建时初始化对象。

    //mediaPicker is your UIImagePickerController
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
    if(mediaPicker.sourceType == UIImagePickerControllerSourceType.PhotoLibrary){
        let button = UIBarButtonItem(title: "Take picture", style: UIBarButtonItemStyle.Plain, target: self, action: "showCamera")
        viewController.navigationItem.rightBarButtonItem = button
    }else{
        let button = UIBarButtonItem(title: "Choose picture", style: UIBarButtonItemStyle.Plain, target: self, action: "choosePicture")
        viewController.navigationItem.rightBarButtonItem = button
        viewController.navigationController?.navigationBarHidden = false
        viewController.navigationController?.navigationBar.translucent = true
    }
}

func showCamera(){
    mediaPicker.sourceType = UIImagePickerControllerSourceType.Camera
}

func choosePicture(){
    mediaPicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
}

在主类中,我创建了一个class Item { string itemName; double price; string description; public Item(string itemName, double price, string description) { this.itemName = itemName; this.price = price; this.description = description; } } 个对象和该类的两个对象。然后我在List中添加了两个对象。如何显示每个对象及其值?我试图使用foreach,但我无法弄清楚如何。

List

3 个答案:

答案 0 :(得分:4)

公共领域的类似内容:

foreach (Item s in items)
{
  Console.WriteLine("{0} {1} {2}", s.itemName, s.price, s.description);
}

或者您可以覆盖ToString()方法:

class Item 
{
  /// your code

  public override string ToString()
  {
    return string.Format("{0} {1} {2}", itemName, price, description);
    // or in C# 6 in Visual Studio 2015:
    // return $"{itemName} {price} {description}";
  }

答案 1 :(得分:1)

您可以为此目的覆盖ToString方法,如下所示:

public override string ToString()
{
     return string.Format("itemName = {0} , price = {1} , description = {2}", itemName, price, description);
}

甚至更好用字符串插值(c#6):

public override string ToString()
{
     return $"itemName = {itemName} , price = {price} , description = {description}";
}

答案 2 :(得分:1)

只需覆盖ToString即可获得所需的字符串输出。

public override string ToString()
{
    return string.Format("{0}{1}{2}", itemName, price, description);
}