首页 > 解决方案 > 使用 foreach 将多个元素添加到列表中

问题描述

至于学校作业,我必须将多个 textbox.texts 添加到我的列表(List<string> snackList = new List<string>();)中。每次用户单击保存按钮并选择 MessageBoxResult.yes 时,它都会向列表中添加一个元素。问题是当用户按下否时,它会在列表框中显示列表,但只会显示最后提交的文本。

到目前为止,我假设我必须使用 foreach 循环,但我可能是错的。我一直在尝试在线搜索解决方案,但遗憾的是没有任何帮助。

我的代码

private void btnSave_Click(object sender, RoutedEventArgs e)
        {
           MessageBoxResult bevestig = MessageBox.Show("Would you like to order another snack?","Question", MessageBoxButton.YesNo);
           List<string> snackList = new List<string>();
           snackList.Add(tbOrder.Text);

           if (bevestig == MessageBoxResult.Yes)
           {
             tbOrder.Text = "";
             tbOrder.Focusable = true;
             tbOrder.Focus();
            }
           else
           {
             lbOrderlist.ItemsSource = snackList;    
           }  
        }

标签: c#wpflistforeach

解决方案


有充分的理由将这个问题作为“错字”结束,这就是为什么这篇文章是社区维基的原因。


您的列表变量在您的方法范围内声明。这意味着一旦代码执行离开范围(方法),变量就会被删除。这也意味着每次调用该方法时,都会创建一个新列表。

采取这一行:

List<string> snackList = new List<string>();

并将其移到您的方法之外,并进入类的范围。


推荐阅读