我正在从CSV文件读取,其中第一行是标题行。读取所有列名并将其放入如下表中:
foreach (var item in lines[0].Split(';').Where(s => !string.IsNullOrEmpty(s)))
{
table.Columns.Add(item.Trim(), typeof(string));
}
除我尝试再次从表中读取内容外,其他所有内容均正确无误。 除一列外,大多数列均已读取。
我已经尝试调试和编写此列的消息,但是它没有进入该函数(请参见下图)。 (if语句返回false)
我现在已经尝试了所有事情,包括检查表上的区域设置。
标题行:
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'
有人知道如何删除该字节(如果存在)吗?
答案 0 :(得分:0)
这是解决方案。 该行的开头包含一个隐藏的字符(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;
}