【问题标题】:Splitting value/data from one column into 3 separate column in c#.net在 c#.net 中将值/数据从一列拆分为 3 个单独的列
【发布时间】:2011-03-23 02:37:43
【问题描述】:

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

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

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

例如)。 csv 字段中的 7 列由 123 组成,然后在 datagridview 中它的值在列/字段 7 = 1 列/字段 8 = 2 和列/字段 9 = 3。

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

谢谢, 鲁沙布·沙阿。

【问题讨论】:

  • 在 datagridview 中显示时将 csv 文件中一个字段的数据/值拆分为 3 个单独的列

标签: c# datagridview csv


【解决方案1】:

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

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

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

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 并运行:

// 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;

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

【讨论】:

  • 如果可能的话,你能给我提供一个简单的程序吗?
  • @Rushahb 已更新以提供示例。
  • 感谢您的回复。它将对我解决我的问题有很大帮助。
【解决方案2】:

首先,您将 CSV 文件数据放入数据表中,然后在下一步中放置一个循环并解析值列虎钳和 例如:if(dataTable.Row[index][7]==123; 然后将值拆分为一个数组,然后将数组值设置为数据表

【讨论】:

  • 你能给我提供一个简单的程序吗?
猜你喜欢
  • 2016-05-02
  • 2021-10-11
  • 2011-05-03
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 2021-08-27
  • 1970-01-01
  • 2019-11-05
相关资源
最近更新 更多