我有一个简单的程序,它使用文本文件作为主要数据输入,我必须创建一个允许用户使用该数据进行操作的Windows表单应用程序。我创建了一些按钮,这些按钮应该允许我们删除,编辑,添加和显示.txt文件中的数据。我已经弄清楚了如何在单击按钮时从该表中写出数据,但我似乎无法弄清楚如何从用户的输入中保存数据。
private void input_Click(object sender, EventArgs e)
{
string brand;
int power, year;
double price;
string message, title, defaultValue;
message = "Input the brand of a tractor ";
title = "Insert a new Tractor";
defaultValue = "John Deere";
brand= Interaction.InputBox(message, title, defaultValue, 100, 100);
defaultValue = "100";
message = "input Power";
power= Convert.ToInt32(Interaction.InputBox(message, title, defaultValue, 100, 100));
defaultValue = "100000";
message = "Input price";
cena = Convert.ToDouble(Interaction.InputBox(message, title, defaultValue, 100, 100));
defaultValue = "2020";
message = "input Year";
year= Convert.ToInt32(Interaction.InputBox(message, title, defaultValue, 100, 100));
Array.Resize(ref listTraktor, listTraktor.Length+1);
listTraktor[listTraktor.Length] = new Traktor(znamka, moc, cena, letnik);
string[] novaVsebina = new string[listTraktor.Length-1];
for (int i = 0; i < novaVsebina.Length-1; i++)
{
novaVsebina[i] = listTraktor[i].ToString();
}
File.WriteAllLines("Agromehanika.txt",novaVsebina , Encoding.UTF8);
}
拖拉机数组在类中创建。现在有了这段代码,我想向该表添加一个新的拖拉机,并将值保存在该 txt 文件中。它基本上应该重写文件中的所有数据,并添加用户输入的新数据,但我似乎无法理解如何将此数组传输到程序本身。感谢您的帮助
首先,我假设 Traktor 是您创建的类,它覆盖了 ToString 方法,以便它返回有关拖拉机而不是 {Namespace} 的所需信息。特拉克托。
我在你的代码中看到的第一个问题是以下行:
listTraktor[listTraktor.Length] = new Traktor(znamka, moc, cena, letnik);
请注意,在 C# 和许多其他编程语言中,数组的第一个元素的索引为 0,因此数组最后一个元素的索引是其长度 - 1。
即:一个包含 10 个元素的数组从索引 0 开始,到索引 9 结束。
因此,这行代码将导致 IndexOutOfRangeException。要更改数组最后一个元素的值,您应该编写:
listTraktor[listTraktor.Length - 1] = new Traktor(znamka, moc, cena, letnik);
// haven't seen the parameters you pass to Traktor's constructor assigned, make sure you are also passing variables that exist in the context and are assigned
下一个问题是 string[] novaVsebina 的初始化。您正在创建一个字符串数组,其长度比 listTraktor 数组小 1。这实质上意味着您无法将所有元素的字符串存储在listTraktor中,因为字符串数组的长度较小。如果要将所有拖拉机ToString((结果存储在单独的数组元素中,则需要将该字符串数组设置为与拖拉机数组相同长度的字符串数组。
最后一个问题是您的 for 循环条件。如前所述,C# 中任何数组的最后一个元素的索引是数组的长度减去 1。你的条件是:我相关内容
最新更新
- backbuttondisplaymode in swiftUI
- Django -单元测试对象是否被删除-如何使用assertRaise / DoesNotExist异常
- 如何以这种格式发送数据我有这个模型,我想要这种格式
- <img> 语义 HTML 中是否允许在内部使用<li>标记?
- 连接Bigquery中的区间聚合数据
- pycharm项目丢失了源根,没有显示
- 按数组字符串过滤对象数组,并与对象的子字符串匹配
- 有时需要多次刷新才能加载Angular 14构建的网站
- 为什么console.log显示我在html文档中有0个加载的图像?
- 没有权限在strapi中查看该字段
- PineScript -策略.输入订单金额
- 如何在所有缩放级别的Azure地图中渲染铁路或火车轨道?
- 每次我运行npm start,我得到以下错误
- 用所有数据初始化mat-autocomplete选项
- 获取或使用函数类中sharedpreferences的值
- r语言 - 在自身RStudio上交叉连接
- 在Nunit中对某些测试进行参数化设置,但对其他测试不进行参数化设置
- 在模板<类中,It>函数,其中它是一个迭代器,我可以让它::value_type同时适用于vector::iterators和array::iterators吗?
- 查询现有列时出现SequelizeDatabaseError
- 如何在React组件中插入使用js创建的iframe
- 使用 HTML 和 Javascript 检测第二个下拉列表(级联)中的更改
- 如何配置我的django项目:模板不存在错误?
- 尝试将JSON解析为字典的问题
- 合并HTML表中的单元格
- c# MVC返回List时如何处理空值
- 如何从标准输入中读取一行,并将其余部分传递给子进程?
- 类型错误:只能将 str (不是 "float" ) 连接到 str
- r语言 - 如何在长格式数据集上使用迭代方法快速拟合混合模型
- 结合使用 Atlantis 和 ArgoCD 的用例是什么?
- AngularJS 1.5每个选项卡/窗口的唯一用户授权
热门标签:
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium