我正在尝试将CSV文件中的数据加载到默认的html下拉列表中。所以,我想在SelectListItem类中加载CSV。但是,我无法找到一个选项,因为FileHelpers需要一个"代理"具有" DelimitedRecord"等属性的类
显然我们不能在现有类中添加属性,也不能在子类中添加属性" SelectListItem"添加属性。
然后有一些方法告诉FileHelpers我想使用特定的SelectListItem类,并告诉我需要填写" Text"和"价值"特性
答案 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
});