【问题标题】:Split String to DataGridview Loop将字符串拆分为 DataGridview 循环
【发布时间】:2021-02-27 03:40:04
【问题描述】:
string csv = "John,Doe,21";
string[] split = csv.Split(',');

DataGridViewTextBoxColumn firstName = new 
DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn lastName = new 
DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn age = new DataGridViewTextBoxColumn();

dataGridView1.Columns.Add(firstName);
dataGridView1.Columns.Add(lastName);
dataGridView1.Columns.Add(age);

dataGridView1.Rows.Add(split);

上面的代码由@David Hall 发布,我的问题是我可以找到一种方法来完成循环部分。

原帖: C# : Split String and put it in the first column of a DataGridView

【问题讨论】:

  • 我认为你的意思是标记这个 C# 而不是 C。我对 C# 一无所知,顺便说一句,但如果你只是问如何编写一个循环来迭代拆分,那么请澄清问题。
  • 您当前的代码创建一个“单”行文本进行拆分。我假设您希望“读取”文件中的大量文本“行”。如果是这样,那么,我建议您查看 StreamReader 类并使用它来“读取”一个 CSV 文件。读取每一行后,您将“拆分”该行,并将三 (3) 个字段添加到网格中的一行中。
  • 您将使用StreamReader 打开文件并一次读取一行文件,直到文件中没有更多行。读取每一行后,您会将行拆分为三 (3) 个字符串,并将这三个字符串添加到网格中的新行。你可以这样做……dataGridView1.Rows.Add(split[0],split[1],split[2]); 将分割行并将行添加到网格的代码放在读取文件中每一行的while 循环中。当读完最后一行时,循环结束。
  • 最后,您应该考虑将数据添加到像DataTableList<T> 这样的“集合”,然后将该“集合”作为DataSource 使用到网格中,而不是添加数据直接进入网格。从长远来看,这将使生活/编码更容易。

标签: c# datagridview


【解决方案1】:
string csv = "John,Doe,21";
string[] split = csv.Split(',');

DataGridViewTextBoxColumn firstName = new 
DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn lastName = new 
DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn age = new DataGridViewTextBoxColumn();

dataGridView1.Columns.Add(firstName);
dataGridView1.Columns.Add(lastName);
dataGridView1.Columns.Add(age);

dataGridView1.Rows.Add(new object[]{split[0],split[1],split[2]});

【讨论】:

  • 感谢@Orlando Aguilera。但是这段代码只适用于一行...我至少有 10 行分为三列。
【解决方案2】:

感谢所有发布的答案...我得到了一些想法并总结了一种方法。

稍微调整一下......它看起来像这样:

string csv = "text,text,text,text,text,text";
string[] split = csv.Split(',');

DataGridViewTextBoxColumn firstName = new 
DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn lastName = new 
DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn age = new 
DataGridViewTextBoxColumn();

dataGridView1.Columns.Add(firstName);
dataGridView1.Columns.Add(lastName);
dataGridView1.Columns.Add(age);

for (int i =0;i<strdata.Split(',').Length;i++) {
SettingsDGV.Rows.Add(new object[] { split[i], split[i+1], split[i+2] });
i++;i++;
 }

【讨论】:

  • 您对另一个答案的评论... “但此代码仅适用于一行...我至少有 10 行分为三列” ...您的示例只有一条线。分成三列的 10 行在哪里?
猜你喜欢
  • 1970-01-01
  • 2014-09-19
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
  • 2019-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多