繁体   English   中英

检查列表中的项目并做出决定

[英]checking items in a list and take a decision

我想在Windows窗体中构建一个程序,用户可以在其中按按钮来创建披萨。

我的问题是,当用户多次按下某个成分时,列表只会增加。 我尝试了各种方法,但它们似乎无效。

我已经看到了一种使用for循环检查列表中单个项目的解决方案,但是我将不得不实施19次,但这并不是真正有效的方法(每个按钮一次)

string check = "Thin Base";
        if (My_Pizza.Contains(check))
        {
            My_Pizza.Items.Remove("ThinBase");
            My_Pizza.Items.Add("Thin Base");
        }

在此处输入图片说明

您有“ ThinBase”和“ Thin Base”。 不一样的东西。

此外,如果列表中已经有一项,则无需执行任何操作。 只需将支票翻转

string check = "Thin Base";
if (!My_Pizza.Items.Contains(check))
{
    My_Pizza.Items.Add(check);
}

通常的想法不是对字符串值进行硬编码,而是创建可重复使用的方法来满足您的需要:检查列表中是否已存在某些值,如果没有,则将该项目添加到列表中。 这将帮助您避免重复代码。

在按钮事件处理程序中,您只需调用此方法并提供字符串值作为参数即可。 我不确定您如何精确地处理按钮单击,但是我建议再次创建单个可重用方法,并从button.Text属性获取字符串值。

这是代码示例,供您演示该想法。

    private void OnButtonClick(object sender, EventArgs e)
    {
        Button clickedButton = (Button) sender;
        if (clickedButton != null)
        {
            string buttonContent = clickedButton.Text;
            CheckAndAdd(buttonContent);
        }
    }

    private void CheckAndAdd(string valueToCheck)
    {
        if (!My_Pizza.Items.Contains(valueToCheck))
        {
            My_Pizza.Items.Add(valueToCheck);
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM