我搜索并搜索,但找不到任何类似的东西。 根据我所知道的一切,它应该有效。
string strTest, strSubTest, strDesc;
using (GenericParser parser = new GenericParser())
{
parser.SetDataSource(@"D:\work.csv");
parser.ColumnDelimiter = @",".ToCharArray();
parser.FirstRowHasHeader = true;
parser.MaxBufferSize = 4096;
parser.MaxRows = 200;
while (parser.Read())
{
strTest = parser["Test"];
strSubTest = parser["Subtest"];
strDesc = parser["Description"];
Console.WriteLine(strTest);
陈述@“,”的代码.ToCharArray();说明标题中的错误。在'Char?'之前,我从未见过像这样的隐式转换。知道我做错了吗?
如果你需要一些背景知识,我使用了这里的GenericParser:http://www.codeproject.com/Articles/11698/A-Portable-and-Efficient-Generic-Parser-for-Flat-F
答案 0 :(得分:3)
(注意单引号)
parser.ColumnDelimiter = ',';
答案 1 :(得分:0)
问号是一个修饰符,用于赋值类型为char,int和double,以使它们可以为空。因此,char x = null;
是语法错误,char? x = null;
有效。 char?
实际上是Nullable<char>
的简写语法。 Nullable<T>
无法与引用类型一起使用,因为它们已经可以为空。 Nullable<T>
个对象有两个属性,bool HasValue
,显而易见,T Value
,如果HasValue为true,则返回封装的值;如果为false,则返回异常。
因此,您无法将Delimeter
设置为字符数组,因为它需要一个字符或null。