1

我想将一个 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);
   }
}
4

1 回答 1

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();
   }
}
于 2012-06-18T20:57:39.523 回答