我可以使用FileHelpers填充现有的类吗?

时间:2018-03-17 02:49:09

标签: c# filehelpers

我正在尝试将CS​​V文件中的数据加载到默认的html下拉列表中。所以,我想在SelectListItem类中加载CSV。但是,我无法找到一个选项,因为FileHelpers需要一个"代理"具有" DelimitedRecord"等属性的类

显然我们不能在现有类中添加属性,也不能在子类中添加属性" SelectListItem"添加属性。

然后有一些方法告诉FileHelpers我想使用特定的SelectListItem类,并告诉我需要填写" Text"和"价值"特性

1 个答案:

答案 0 :(得分:1)

您可以分两步完成。

首先,使用FileHelpers库将CSV文件读取到您选择的数据结构,其属性与CSV文件相同。引自http://www.filehelpers.net/quickstart/

  

映射类

using FileHelpers;

[DelimitedRecord(",")]
public class Customer
{
  public int CustId;

  public string Name;

  public decimal Balance;

  [FieldConverter(ConverterKind.Date, "dd-MM-yyyy")]
  public DateTime AddedDate;

}
     

为读写创建FileHelperEngine

var engine = new FileHelperEngine<Customer>();

// To Read Use:
var result = engine.ReadFile("FileIn.txt");
[...]

现在,如果您的数据来自CSV文件,则会有一个列表。然后使用SelectListItem对象中的数据创建Customer个对象(在此示例中)。

一个简单的Select() LINQ调用将执行:

var items = result.Select(it => return new SelectItem {
    Text = whatever,
    Value = whatever
});