c# - 使用 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;
}
}
解决方案
有充分的理由将这个问题作为“错字”结束,这就是为什么这篇文章是社区维基的原因。
您的列表变量在您的方法范围内声明。这意味着一旦代码执行离开范围(方法),变量就会被删除。这也意味着每次调用该方法时,都会创建一个新列表。
采取这一行:
List<string> snackList = new List<string>();
并将其移到您的方法之外,并进入类的范围。
推荐阅读
- laravel - 如何在警报功能离子中应用删除?
- javascript - React 不渲染道具,但可以在 console.log 中看到
- python - 在熊猫数据框中按时间段计算一列
- r - 在折线图 R 中显示值
- android - Room 无法验证数据完整性,即使在卸载应用程序然后重新安装后也是如此
- c++ - C++ 上的并行并不像 C# 那样快
- verilog - 左移直到 MSB 为 1:超出循环计数限制。条件永远不会是假的
- powershell - 记录从单个父 ps 脚本调用的多个子 ps 脚本的输出的最佳简单方法是什么?
- c - 如何删除C中的特定记录
- r - 如何按一列分组并获取其他列的方法