【问题标题】:Use foreach to add multiple elements to list<string> [closed]使用 foreach 将多个元素添加到 list<string> [关闭]
【发布时间】:2021-02-10 21:34:52
【问题描述】:

至于学校作业,我必须将多个 textbox.texts 添加到我的列表中 (List&lt;string&gt; snackList = new List&lt;string&gt;();)。每次用户单击保存按钮并选择 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;    
           }  
        }

【问题讨论】:

  • 提示:任何时候你在inside方法中创建变量(如snackList),一旦方法完成,它就会被清除,所以下一次该方法被调用,它将重新开始。
  • 你需要在类级别而不是方法内部来定义你的变量

标签: c# wpf list foreach


【解决方案1】:

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


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

走这条线:

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

然后将它移出你的方法,并进入类的范围。

【讨论】:

    猜你喜欢
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 2012-12-26
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多