存储包含字符串和 int、List 或 Array 的用户输入数据的有效方法?C#.



对于个人项目,我想用C#制作一个简单的库存系统。有三个输入,itemName(string),itemQuantity(int),itemLevelAlert(int),然后是一个按钮。

单击"添加"按钮时,我希望将输入数据分组并存储在某个地方。我在 C# 方面没有足够的经验,不知道执行此操作的最佳方法。

在JavaScript中,我可能会使用多维数组:

var inventoryArray = [["Hammer", 25, 5], ["Nails", 100, 20]]

并简单地将输入推送到该数组。我仍在学习 C#,它对数组的处理方式略有不同。

我可以对列表做类似的事情吗?考虑到我的经验不足,我可能会在这里深入,但我觉得这样我学得更好。

在 .Net 语言(如 C#)中,您通常希望为此类内容构建一个类型(类):

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
                });

您可以使用字符串和 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.");
            }

最新更新