按行和逗号分割多行字符串,并将部件放入DataGridView

时间:2012-06-18 20:35:52

标签: c# .net winforms datagridview split

我想将多行字符串从一个DataGridView(dgvObs)拆分并转置为另一个DataGridView(dgvSm)中的行和列。
这段代码可行,但是 - 也许有更好的解决方案:

object val = dgvObs.Rows[0].Cells[2].Value;
if (val == null) return;

string text = val.ToString();
using (StringReader sr = new StringReader(text))
{
   string line;
   while ((line = sr.ReadLine()) != null)
   {
      string[] divLine = line.Split(',');
      dgvSm.Rows.Add(divLine);
   }
}

1 个答案:

答案 0 :(得分:2)

你说的更短吗?试试这个:

var a = dgvObs.Rows[0].Cells[2].Value;

if (a == null) return;

foreach (String s in a.ToString().Split(','))
{
   dgvSm.Rows.Add(s);
}

评论编辑:

这将读取多行,通过正则表达式拆分它,然后执行原始代码所做的操作。只需将dgvSm.Rows.Add(s);行添加到嵌套的foreach语句中即可。

var a = @"I'm a cat, woof.
                    bombs, away";

var result = Regex.Split(a, "\r\n|\r|\n");

foreach (var z in result)
{
   foreach (String sString in z.Split(','))
   {
      var asaa = sString.Trim();
   }
}