0
基本上我想要做的是使用CSVHelper讀取CSV文件。訣竅是有多個文件(每次用戶選擇不同的文件)和,他們每個人都有不同的結構。使用CSVHelper讀取不同的CSV
他們共享的只有第一個col命名爲「Id」,然後它們每個都有不同數據類型的cols數目(從2增加到5)。
我試圖做到這一點像:
public class Country
{
public int Id { get; set; }
public IList<string> Attributes { get; set; }
}
public sealed class CountryMap : CsvClassMap<Country>
{
private List<string> attributeColumns =
new List<string> { "Attribute1", "Attribute2", "Attribute3", "Attribute4", "Attribute5" };
public override void CreateMap()
{
Map(m => m.Id).Name("Id").Index(0);
Map(m => m.Attributes).ConvertUsing(row =>
attributeColumns
.Select(column => row.GetField<string>(column))
.Where(value => String.IsNullOrWhiteSpace(value) == false)
);
}
}
再搭配:
using (var reader = new CsvReader(new StreamReader(FilePath,encoding.UTF8)))
{
reader.Configuration.RegisterClassMap<CountryMap>();
while (reader.Read())
{
var card = reader.GetRecord<Country>();
}
}
但只有我得到的是車= NULL。
我會非常感謝任何提示和答案。
在以下網頁上使用我的CSVReader類:http://stackoverflow.com/questions/30129406/reading-data-from-csv-to-screen-output。結果放入DataTable中。您可以多次調用該類,並將第二個結果放入不同的DataTable中。使用連接來合併兩個數據表。 – jdweng