如何将CSV解析为具有不同类型C#的对象字段

  • 本文关键字:同类型 字段 对象 CSV c#
  • 更新时间 :
  • 英文 :


我没有具体看到这个问题吗?但是,当其中一个字段不属于同一类型时,如何解析CSV文件并将其存储为模型,因为它需要一些额外的逻辑和转换。请参见以下内容:CSV行/列

"EmployeeId,OrganizationIdList"
"12345,987/654/321"
"54321,123/456/789"

型号

public class Employee
{
public long EmployeeId { get; set; }
public List<long> OrganizationIdList { get; set; }
}

我在想的代码

using (var stream = xxx(I get my stream using Azure))
using (var reader = new StreamReader(stream))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
var employees = new List<employees>();
var records = csv.GetRecords<Employee>().ToList();
foreach (var record in records)
{ 
employees.Add(new Employee { EmployeeId = record.EmployeeId, OrganizationIdList = record.OrganizationIdList });
}
}

现在,正如您和我所知,OrganizationidList出现NULL,那么我如何拆分和分解传入字符串以获取long?我想不通?我需要它不被硬编码,这样列就可以切换位置或行,因为我已经找到了如何通过索引来做到这一点。欢迎任何帮助!

编辑我需要拆分并获取987/654/321以转换(解析(为long,但如何转换?

将第二列解析为字符串,然后解析

string inp ="987/654/321";
var bits = inp.Split('/');
var orgs = bits.Select(b=>Int32.Parse(b)).ToList();

您将需要using System.Linq

最新更新