[英]Effective way of storing user input data that contains a string and int, List or Array? C#
對於個人項目,我想用 C# 制作一個簡單的庫存系統。 有三個輸入,itemName(string)、itemQuantity(int)、itemLevelAlert(int),然后是一個按鈕。
單擊“添加”按鈕時,我希望將輸入數據分組並存儲在某處。 我對 C# 的經驗不足,無法知道執行此操作的最佳方法。
在 JavaScript 中,我可能會使用多維數組:
var inventoryArray = [["Hammer", 25, 5], ["Nails", 100, 20]]
並簡單地將輸入推送到該數組。 我仍在學習 C#,它對數組的處理有點不同。
我可以用列表做類似的事情嗎? 考慮到我的經驗不足,我可能會在這里深入學習,但我覺得這樣我學得更好。
在像 C# 這樣的 .Net 語言中,你通常希望為這種事情構建一個類型(類):
public class Item
{
public string Name {get;set;}
public int Quantity {get;set;}
public int AlertLevel {get;set;}
}
然后你創建一個通用的 List 對象,它可以保存這些項目(並且只有這些項目!)
var inventory = new List<Item>();
現在,當您單擊添加時,按鈕的代碼看起來像這樣(假設使用 Winforms 並且有很多虛構的變量名稱。網站看起來會有所不同):
//assuming Winforms. Code for a web site will look a bit different:
private void button1_Click(object sender, EventArgs e)
{
int quantity, alertlevel;
if (!int.TryParse(txtQuantity.Text, out quantity))
{
MessageBox.Show("Enter a valid number for the quantity.");
return;
}
if (!int.TryParse(txtQuantity.Text, out alertlevel))
{
MessageBox.Show("Enter a valid number for the alert level.");
return;
}
inventory.Add(new Item() {Name = txtName.Text, Quantity = quantity, AlertLevel = alertlevel});
}
您可以從定義模型開始:
internal class Inventory
{
public string ItemName { get; set; }
public int ItemQuantity { get; set; }
public int ItemLevelAlert { get; set; }
}
然后,您應該聲明庫存清單,您將在其中存儲新創建的庫存:
var inventoryList = new List<Inventory>();
之后,您需要在按鈕單擊事件中的上述清單列表中添加您的庫存:
button.Click += (s, e) =>
{
inventoryList.Add(new Inventory()
{
// get value from your form
ItemName = "Item1",
ItemLevelAlert = 1,
ItemQuantity = 5
});
您可以使用 string 和 int 類型執行以下操作:
(string, int, int)[] Cats =
{
("Tom", 20, 3), ("Fluffy", 30, 4), ("Harry", 40, 5), ("Fur Ball", 40, 6)
};
foreach (var cat in Cats)
{
Console.WriteLine($"My cats name is {cat.Item1} it is {cat.Item2} years old and weights {cat.Item3} lbs.");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.