C# 有没有办法像object[属性]那样设置对象值?
我正在尝试将datatable行映射到对象。C 我有这样的数据表C# 有没有办法像object[属性]那样设置对象值?,c#,C#,我正在尝试将datatable行映射到对象。C 我有这样的数据表 |----|------|---------| |ID | Name | Address | |----|------|---------| | 1 | Tom | USA | |----|------|---------| | 2 | Tim | AU | |----|------|---------| 我有反对意见 Contact { int ID, String Name, String Add
|----|------|---------|
|ID | Name | Address |
|----|------|---------|
| 1 | Tom | USA |
|----|------|---------|
| 2 | Tim | AU |
|----|------|---------|
我有反对意见
Contact {
int ID,
String Name,
String Address
}
我想像这样动态地映射
Contact contact = new Contact();
foreach (var row in rows) {
foreach(var col in table.Columns)
contact[col.ColumnName] = row[col.ColumnaName]
}
像Javascript一样,有没有办法通过columnName设置object中的值?创建一个联系人类,如下所示:
public class Contact
{
private int ID;
private string Name;
private string Address;
public Contact(int _ID, string _Name, string _Address)
{
ID = _ID;
Name = _Name;
Address = _Address;
}
}
之后,您可以创建如下联系人:联系人c=新联系人1,Tom,Berlin
您可以将foreach包装在其周围,并使用数据行填充联系人
像这样:
DataTable dt = new DataTable(); // Fill this table
foreach (var row in dt.Rows)
{
Contact c = new Contact(row["ID"], row["Name"], row["Address"]);
}
反射,或自动映射,或短小精悍?可能是重复的,那么哪一行表示要映射到联系人对象的第一行或第二行?或者您希望将所有行添加到联系人列表中object@John,automapper很慢,这是干什么用的?反射、Emitmapper、mapster是一个如何将DataTable映射到对象的示例。