我会创建一个类来将每条记录(行)存储在您的 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;
请注意,这是非常脆弱的代码,您需要在生产应用程序中以不同方式执行我在此处展示的几乎所有内容。它确实表明了我的意思。