首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在c#.net中将一列中的值/数据拆分为3个单独的列

在c#.net中将一列中的值/数据拆分为3个单独的列
EN

Stack Overflow用户
提问于 2011-03-23 10:37:44
回答 2查看 2.8K关注 0票数 1

在datagridview中读取/显示csv文件时,我有一些困惑。

情况是这样的,我正在读取csv文件,该文件由7个数据/列/字段组成。我尝试在datagridview中显示这些数据,其中包含9列/字段。

现在,csv文件中的7个数据/列/字段由0到3或1到3的组合值组成。我想将csv中7个列/字段的数据拆分为datagridview的最后3列/字段。

例如)。7 csv字段中的列等于123,那么在datagridview中,列/字段中的值7=1,列/字段8=2,列/字段9= 3。

我想知道,有没有可能在C#.NET中将值拆分为3个不同的列。

谢谢你鲁沙布·沙阿

EN

回答 2

Stack Overflow用户

发布于 2011-03-23 10:52:56

我会创建一个类来存储CSV中的每条记录(行)。在这个类中,公开与DataGridView中的九列相对应的九个属性。该类将处理将第七列的值拆分为第八列和第九列的逻辑,如您所述。

当您读取该类的CSV create实例时,将它们放在一个列表(或另一个集合)中,并将该列表绑定到DataGridView。

这就是我的意思。创建以下类:

代码语言:javascript
复制
class Record
{
    public Record(string line) {
        string[] fields = line.Split(',');
        Field1 = fields[0];
        Field2 = fields[1];
        Field3 = fields[2];
        Field4 = fields[3];
        Field5 = fields[4];
        Field6 = fields[5];
        Field7 = fields[6].Substring(0, 1);
        Field8 = fields[6].Substring(1, 1);
        Field9 = fields[6].Substring(2, 1);
    }
    public string Field1 { get; private set; }
    public string Field2 { get; private set; }
    public string Field3 { get; private set; }
    public string Field4 { get; private set; }
    public string Field5 { get; private set; }
    public string Field6 { get; private set; }
    public string Field7 { get; private set; }
    public string Field8 { get; private set; }
    public string Field9 { get; private set; }
}

将一个DataGridView放到表单上,然后运行以下命令:

代码语言:javascript
复制
// Create a bunch of Record objects.  Note: r1-f3 = record 1, field 3.
List<Record> recordList = new List<Record> { new Record("r1-f1,r1-f2,r1-f3,r1-f4,r1-f5,r1-f6,123"), 
                                             new Record("r2-f1,r2-f2,r2-f3,r2-f4,r2-f5,r2-f6,456"), 
                                             new Record("r3-f1,r3-f2,r3-f3,r3-f4,r3-f5,r3-f6,789")};
dataGridView1.DataSource = recordList;

请注意,这是非常脆弱的代码,您需要在生产应用程序中以不同的方式执行我在此处展示的几乎所有内容。不过,这确实说明了我的意思。

票数 1
EN

Stack Overflow用户

发布于 2011-03-23 13:15:40

首先,将CSV文件数据放到一个数据表中,在下一步中,您将放置一个循环并解析值列vise和ex: if(dataTable.Rowindex==123;然后将该值拆分为一个数组,然后将数组值设置为data Table

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5400257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档