簡體   English   中英

存儲包含字符串和整數、列表或數組的用戶輸入數據的有效方法? C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM