查看输入的文本框值是否作为数组的一部分存在

本文关键字:数组 是否 一部分 存在 输入 文本 | 更新日期: 2023-09-27 18:05:18

我使用的是VS 2012, Windows Forms Project, c#

我有一个名为products[]的产品数组,我从我的项目中的XML文件中获得。用户将使用数字键盘输入产品ID(4位数字,只读文本框),然后我搜索products[]以找到与ID匹配的价格,并将其"找零"还给用户。我如何防止用户输入无效的产品ID,或者在他们输入ID并单击"购买"后告诉他们"错误此ID不存在"之类的内容。这是我的购买按钮的代码,在用户输入他们的"钱"并为产品做出4位数的选择之后。

CoinChange是一个来自DLL的类,它有一个叫做TotalChange的方法,它接受两个参数来吐出变化,decimal productpricedecimal amountDeposited

private void btnPurchase_Click(object sender, EventArgs e)
{
    TextReader reader = null;
    decimal productprice;
    decimal amountDeposited = Convert.ToDecimal(txtDepositAmount.Text);
    int productChoice = Convert.ToInt16(txtChoice.Text);
    XmlSerializer serializer = new XmlSerializer(typeof(Product[]));
    reader = new StreamReader("../../XML/Drinks.xml");
    Product[] products = (Product[])serializer.Deserialize(reader);
    for (int x = 0; x < products.Length; x++)
    {
        if (products[x].productID == productChoice)
        {
            productprice = products[x].price;
            CoinChange CC = Service.TotalChange(productprice, amountDeposited);
            MessageBox.Show("Refund amount:" + "'r'n" + "Nickel: " + CC.Nickel.ToString() + "'r'n" + "Dime: " +
              CC.Dime.ToString() + "'r'n" + "Quarter: " + CC.Quarter.ToString());
            break;
        }
    }
}

请不要对我大喊大叫,如果这不是格式化正确,我是新的网站,我会修复它只是让我知道什么需要修复。谢谢你!

查看输入的文本框值是否作为数组的一部分存在

    for (int x = 0; x < products.Length; x++)
    {
        if (products[x].productID == productChoice)
        {
            productprice = products[x].price;
            CoinChange CC = Service.TotalChange(productprice, amountDeposited);
            MessageBox.Show("Refund amount:" + "'r'n" + "Nickel: " + CC.Nickel.ToString() + "'r'n" + "Dime: " +
                            CC.Dime.ToString() + "'r'n" + "Quarter: " + CC.Quarter.ToString());
            return;  // Found and handled the product
        }
    }
    // If we get here none of the products matched
    MessageBox.Show("Invalid product ID.  Please check your catalog and try again.");