我正在嘗試選擇存盤在用戶名 == 引數的串列中的所有資料。我無法以正確的格式列印它。目前,輸出是 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);
}
}
}
uj5u.com熱心網友回復:
根據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);
}
}
uj5u.com熱心網友回復:
您的問題對于您究竟要列印什么以及以什么格式列印有點不清楚,但鑒于您說您想要所有資料,這可能是一個解決方案:
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.userName "\t" product.productName "\t" product.productType "\t" product.productCost);
}
}
這將列印出物件的所有變數。因為如果您將物件作為唯一的引數提供給 WriteLine(),它只會列印出它的型別。
uj5u.com熱心網友回復:
您不能只列印類實體。嘗試列印屬性。
Console.WriteLine(product.productName);
uj5u.com熱心網友回復:
你可以達到預期的結果,using System.Text.Json然后做Console.WriteLine(JsonSerializer.Serialize(product))
uj5u.com熱心網友回復:
如果您想以特定方式顯示資料,最好是覆寫 Products 類中的 ToString() 方法,然后在 Console.WriteLine 中呼叫它
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/331423.html
標籤:C#
