【发布时间】:2018-04-09 22:02:29
【问题描述】:
我当前的代码有效并且输出正确。我正在从 data.txt 文件中提取数据,并已成功使用 TextFieldParser 将数据提取到数组中。有没有办法将我的代码转换为列表?怎么会这样?如果转换不是一种选择,那么关于从哪里开始代码的任何建议?基本上试图从一个数组到一个列表集合。
public partial class EmployeeInfoGeneratorForm : Form
{
public EmployeeInfoGeneratorForm()
{
InitializeComponent();
}
// button event handler
private void GenerateButton_Click(object sender, EventArgs e)
{
string[] parts;
if(File.Exists("..\\data.txt"))
{
TextFieldParser parser = new TextFieldParser("..\\data.txt");
parser.Delimiters = new string[] { "," };
while (true)
{
parts = parser.ReadFields();
if (parts == null)
{
break;
}
this.nameheadtxt.Text = parts[0];
this.addressheadtxt.Text = parts[1];
this.ageheadtxt.Text = parts[2];
this.payheadtxt.Text = parts[3];
this.idheadtxt.Text = parts[4];
this.devtypeheadtxt.Text = parts[5];
this.taxheadtxt.Text = parts[6];
this.emp1nametxt.Text = parts[7];
this.emp1addresstxt.Text = parts[8];
this.emp1agetxt.Text = parts[9];
this.emp1paytxt.Text = parts[10];
this.emp1idtxt.Text = parts[11];
this.emp1typetxt.Text = parts[12];
this.emp1taxtxt.Text = parts[13];
this.emp2nametxt.Text = parts[14];
this.emp2addresstxt.Text = parts[15];
this.emp2agetxt.Text = parts[16];
this.emp2paytxt.Text = parts[17];
this.emp2idtxt.Text = parts[18];
this.emp2typetxt.Text = parts[19];
this.emp2taxtxt.Text = parts[20];
this.emp3nametxt.Text = parts[21];
this.emp3addresstxt.Text = parts[22];
this.emp3agetxt.Text = parts[23];
this.emp3paytxt.Text = parts[24];
this.emp3idtxt.Text = parts[25];
this.emp3typetxt.Text = parts[26];
this.emp3taxtxt.Text = parts[27];
}
}
else //Error Message for if File isn't found
{
lblError.Text = "File Not Found";
}
}
}
【问题讨论】:
-
var list = parts.ToList()- 它内置在 System.Linq -ToList<T> -
为什么要转换成列表?如果内部实现适用于数组,我认为没有理由更改它,
-
学习 c# 并开始了解有关 Collection 列表的更多信息。试验这个项目。我知道它可以作为一个数组工作,但我只是想了解更多关于集合的信息。我对编程和 c# 非常熟悉和新手。我的代码中可能有一些不好的做法,但我真的试图掌握如何将它从数组转换为集合列表。
-
用
while(!parser.EndOfData)代替while(true) -
使用字段更新这些 UI 控件是没有意义的,您只能看到文件中的最后一条记录。而是声明一个可以存储这些值的类,然后您可以声明 List(Of ThatClass)。在循环中使用它的 Add() 方法。如果您还想查看内容,请考虑使用 DataGridView。
标签: c# arrays visual-studio list