我有一个从各种来源传送到我的应用程序的 CSV。 CSV 将始终具有相同编号的列,并且列的标题值将始终相同。
但是,列的顺序可能并不总是相同。
第 1 天 CSV 可能如下所示
ID,FirstName,LastName,Email
1,Johh,Lennon,jlennon@applerecords.com
2,Paul,McCartney,macca@applerecords.com
第 2 天 CSV 可能如下所示
Email,FirstName,ID,LastName
resident1@friarpark.com,George,3,Harrison
ringo@allstarrband.com,Ringo,4,Starr
我想读取每个文件的标题行,并有一个简单的机制将数据的每个“列”与我在类中定义的关联属性相关联。
我知道我可以使用选择语句来解决这个问题,但这似乎是一种“糟糕”的处理方式。
有没有一种在运行时使用字典或类将“列”映射到属性的简单方法?
最佳答案
使用字典将列标题文本映射到列位置。 列标题文本到对象属性的硬编码映射。
例子:
// Parse first line of text to add column heading strings and positions to your dictionary
...
// Parse data row into an array, indexed by column position
...
// Assign data to object properties
x.ID = row[myDictionary["ID"]];
x.FirstName = row[myDictionary["FirstName"]];
...
关于c# - 是否有用于将具有随机列顺序的 CSV 映射到已定义属性的代码模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24293646/