对于个人项目,我想用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.");
}