C# 按行和逗号拆分多行字符串,并将部分放入DataGridView
我想将一个多行字符串从一个DataGridView(dgvObs)拆分并转置到另一个DataGridView(dgvSm)中分离行和列。C# 按行和逗号拆分多行字符串,并将部分放入DataGridView,c#,.net,winforms,datagridview,split,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)) { str
这段代码可以工作,但是-也许有更好的解决方案:
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);
}
}
你怎么说?试试这个:
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将代码>行插入嵌套的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();
}
}
我不知道是否有更好的方法,但不管是什么类或函数,将文本转换成数据网格,或多或少都会做同样的事情。我的想法是,既然这样做了,就不会有对象/类声明的开销。例如:foreach(分割线…)。。。dgvSm.Rows.Add(…).KreepN-起始字符串是多行的,每行中都有逗号分隔的值。目标是将每一行放入dgvRow,将每一个逗号分隔的值放入dgvColumn。代码为每个csv而不是每行创建dgvRow。无论如何,谢谢。如果您希望根据您的评论看到代码的修改版本,请检查编辑。