按名称找不到 DataTable 中的 DataColumn

DataColumn in DataTable not found by name

我正在读取 CSV 文件,其中第一行是 header 行。读取所有列名并将其放入 table 中,如下所示:

foreach (var item in lines[0].Split(';').Where(s => !string.IsNullOrEmpty(s)))
        {
            table.Columns.Add(item.Trim(), typeof(string));
        }

一切都正确,除了我再次尝试从 table 中读取时。 大多数专栏都已阅读,只有一栏除外。

我已经尝试调试并为此专栏编写消息,但它没有进入该功能(见下图)。 (if 语句 return false)

我现在已经尝试了所有方法,包括检查 table 上的区域设置。

Header行:

document title;DocRef;DocRevNo;DocRevDt;RevisionObject;TransRef;Trans Status;DocOrigin;DocRefClient;RespActualDt;First TransDate;Last Update

编辑:

我发现第一个字节很奇怪...

[0]: 65279 ''
[1]: 100 'd'
[2]: 111 'o'
[3]: 99 'c'
[4]: 117 'u'
[5]: 109 'm'
[6]: 101 'e'
[7]: 110 'n'
[8]: 116 't'
[9]: 32 ' '
[10]: 116 't'
[11]: 105 'i'
[12]: 116 't'
[13]: 108 'l'
[14]: 101 'e'

有人知道如何删除该字节(如果存在)吗?

这是解决方案。 该行的开头包含一个隐藏字符 (65279)。通过运行文本通过这个函数,就去掉了问题:

    protected string CleanInput(string input)
    {
        var imp = (input ?? "");
        var removeChars = new Char[] { (Char)65279 };
        imp = new String(imp.ToCharArray().Where(c => !removeChars.Contains(c)).ToArray());
        return imp;
    }