按字符拆分字符串并添加到c#中DataGridView中的不同列

时间:2013-07-24 17:27:33

标签: c# arrays string winforms datagridview

我有这段代码:

string strdata = Encoding.Unicode.GetString(buffer);
char[] splitchar = new Char[] { '\x00' };
string[] assetdata = strdata.Split(splitchar, strdata.Length);

缓冲区是一个文本数据,它作为一行包含4种类型的变量。您可以在此链接后面看到Unicode缓冲区中的编码示例: http://pastebin.com/ScdGX8it 所以这里有4种类型的数据需要填充到由4列分隔的DataGridView行中,因此我可以对其进行排序和操作。 Assetdata是一个数组,这些数据被每个值分隔为一个单独的元素,但我需要对它们进行分组 - 这是主要问题。 感谢。

2 个答案:

答案 0 :(得分:1)

这是没有LINQ的一种方法,它使用数据表作为datagridview的数据源。

        DataTable dt = new DataTable("T1");
        dt.Columns.AddRange(new DataColumn[] { new DataColumn("A"), new DataColumn("B"), new DataColumn("C"), new DataColumn("D")});
        for (int i = 0; i < assetdata.Length; i += 4)
        {
            dt.Rows.Add(new string[]{assetdata[i],assetdata[i+1],assetdata[i+2],assetdata[i+3]});
        }
        dataGridView1.DataSource = dt;

通过这种方式,您可以修改数据表并更新datagridview,这可能会为您提供更多选项,因为这更符合datagridview的设计方式。

答案 1 :(得分:0)

LINQ是你的朋友。浏览有关分组的教程。它应该很简单,因为你已经有了一个字符串[]。完成查询后,调用ToIEnumerable()扩展方法绑定到DataGridView。

http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b