如何将对象打印到控制台?

Cal*_*wis -2 c#

我试图选择存储在用户名==参数的列表中的所有数据。我无法以正确的格式打印它。目前,输出是 productsClass.Products 我希望它是数据。非常感谢任何帮助或提示。

谢谢

public class Products {
    public string productName;
    public string productType;
    public int productCost;
    public string userName;
}

public class ProductController {
    public List<Products> productsList;

    public ProductController() {
        productsList = new List<Products>();
    }

    public void CreateNewProduct(string username, string productName, string productType, int productCost) {
        Products product = new Products();
        product.userName = username;
        product.productName = productName;
        product.productType = productType;
        product.productCost = productCost;
        productsList.Add(product);
    }

    public void ListAllProducts(string username) {
        IEnumerable<Products> listProducts = from s in productsList
                                             where s.userName == username
                                             select s;
        foreach (var product in listProducts) {
            Console.WriteLine(product);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Yon*_*hun 5

根据Object.ToString方法

Object.ToString方法返回对象类型的完全限定名称。

如果需要打印product,则必须重写.ToString()如下:

public class Products 
{
    ...

    public override string ToString()
    {
        return String.Format("Name: {0}, Type: {1}, Cost: {2}, UserName: {3}", productName, productType, productCost, userName);
    }
}
Run Code Online (Sandbox Code Playgroud)