c#将.csv文件读入具有重复列名的DataTable

c#将.csv文件读入具有重复列名的DataTable,c#,csv,datatable,duplicates,C#,Csv,Datatable,Duplicates,我有一个.csv文件,它有重复的列名,即单词“Type”被重复多次 我有一个基本的.csv读取器,它读入一个数组,然后在“,”上拆分。然而,因为它随后被分配到一个DataTable,所以我遇到了任何有重复列名的.csv文件的问题 最好的办法是什么 public void parseCSV(string file) { string[] Lines = File.ReadAllLines(file); string[] Fields;

我有一个.csv文件,它有重复的列名,即单词“Type”被重复多次

我有一个基本的.csv读取器,它读入一个数组,然后在“,”上拆分。然而,因为它随后被分配到一个DataTable,所以我遇到了任何有重复列名的.csv文件的问题

最好的办法是什么

    public void parseCSV(string file)
    {
        string[] Lines = File.ReadAllLines(file);

        string[] Fields;
        Fields = Lines[0].Split(new char[] { ',' });

        int Cols = Fields.GetLength(0);
        DataTable dt = new DataTable();

        //1st row must be column names; force lower case to ensure matching later on.
        for (int i = 0; i < Cols; i++)
            dt.Columns.Add(Fields[i], typeof(string));

        DataRow Row;
        for (int i = 1; i < Lines.GetLength(0); i++)
        {
            Fields = Lines[i].Split(new char[] { ',' });
            Row = dt.NewRow();
            for (int f = 0; f < Cols; f++)
                Row[f] = Fields[f];
            dt.Rows.Add(Row);

            dataGridView.DataSource = dt;
        }
    }

您可以添加一个后缀,如
Type_1

for (int i = 0; i < Cols; i++)
{
    string columnName = Fields[i];
    int num = 0;
    while (dt.Columns.Contains(columnName))
        columnName = string.Format("{0}_{1}", Fields[i], ++num);
    dt.Columns.Add(columnName);
}
for(int i=0;i
您可以添加一个后缀,如
Type_1

for (int i = 0; i < Cols; i++)
{
    string columnName = Fields[i];
    int num = 0;
    while (dt.Columns.Contains(columnName))
        columnName = string.Format("{0}_{1}", Fields[i], ++num);
    dt.Columns.Add(columnName);
}
for(int i=0;i
谢谢,我知道有一种简单的方法可以解决问题,但我只是看了太久。谢谢,我知道有一种简单的方法可以解决问题,但我只是看了太久。