C# 如何在运行时检测列数据类型,同时解析带有标头的CSV文件

C# 如何在运行时检测列数据类型,同时解析带有标头的CSV文件,c#,csv,parsing,types,filehelpers,C#,Csv,Parsing,Types,Filehelpers,我使用加载CSV数据(信用-搜索找到的答案/搜索结果时) 用户浏览目录,选择带有标题的文件,然后上传进行解析。我的问题是--它们是一次性文件,其col/class/type以前是未知的 问题:解析时如何检测列的数据类型? 搜索之后,我找到了一个名为public Type{get;}的函数,它提供了记录类型。。我需要帮助获取记录中的Col数据类型 var fNengine = new FileHelperEngine<AttendeeEventManifesto>(); var fNr

我使用加载CSV数据(信用-搜索找到的答案/搜索结果时)

用户浏览目录,选择带有标题的文件,然后上传进行解析。我的问题是--它们是一次性文件,其col/class/type以前是未知的

问题:解析时如何检测列的数据类型?

搜索之后,我找到了一个名为
public Type
{get;}
的函数,它提供了记录类型。。我需要帮助获取记录中的Col数据类型

var fNengine = new FileHelperEngine<AttendeeEventManifesto>();
var fNrecords = engine.ReadFile("AttendeesByEvents.csv"); 

// How to get the Col types?
// HeaderText = typeof(..*notKNown*).GetCsvHeader();
//..var headers = fNrecords.HeaderText();

//foreach (var header in headers)
  //  Console.WriteLine(header.RecordType() + `\n`);     
var fnegine=new FileHelperEngine,但是@shmap00提到的运行时帮助程序或者他提到的帮助已经不在了,我也查看了源代码树。有人能给我指一下链接吗?

您可以在运行时使用

DelimitedClassBuilder cb = new DelimitedClassBuilder("MyProduct", delimiter: ",");

cb.AddField("Name", typeof(string));
cb.LastField.TrimMode = TrimMode.Both;

cb.AddField("Description", typeof(string));
cb.LastField.FieldQuoted = true;
cb.LastField.QuoteChar = '"';
cb.LastField.QuoteMode = QuoteMode.OptionalForBoth;

// etc... e.g., add a date field
cb.AddField("SomeDate", typeof(DateTime));

engine = new FileHelperEngine(cb.CreateRecordClass());

DataTable dt = engine.ReadFileAsDT("test.txt");

你的类没有定义列类型吗?@Steve我正在加载CSV的blind,即web用户获取新数据、CSV文件,他的过程是->从浏览器中选择并加载文件。所以,这是一次上传,谁的col是未知的。我正在尝试生成类def。从CSV文件到CSV?它总是一个字符串;)但是说真的,如果你非常关心这些数据,想知道数据的类型,你就需要先用人眼来观察数据。@JoelCoehoorn-不幸的是,你无法控制需求!看起来新的链接是