1

複数行の文字列を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 に答える