【发布时间】:2018-05-11 00:46:49
【问题描述】:
我有一个应用程序,其中有一个包含 100 个属性值的类
例如。
Class RequestData{
String PropertName1 {get;set;}
String PropertName2 {get;set;}
String PropertName3 {get;set;}
.
.
.
String PropertName100 {get;set;}
}
我有一个列表>,其中包含所有属性名和属性值。所以,理想情况下,这有
PropertName1 = "Timothy"
PropertName2 = "rajan"
.
.
.
PropertName100 = "alex"
我需要创建一个 RequestData 实例并将所有属性值分配给每个属性名称
在这种情况下,我需要这样做,这将导致 100 行
RequestData requestData = new RequestData ();
requestData.PropertName1 = "Timothy" ;
requestData.PropertName2 = "Rajan" ;
requestData.PropertName3 = "Alex" ;
有没有更好的方法来做到这一点?我可以循环进入列表,但不知道如何巧妙地做到这一点
RequestData requestData = new RequestData ();
requestData.[key]= value ;
我希望我说清楚了。任何帮助都会很棒。
【问题讨论】:
-
如果您只是创建一个请求对象,为什么不使用
ExpandoObject- 您可以将其视为字典或对象。 -
您还没有显示列表,您已经显示了看起来像是多个作业的内容。您能否显示“属性名称和值列表”的实际示例?是不是类似于
var propNamesAndValues = new List<string> { "PropertName1 = Timothy", "PropertName2 = rajan", ... , "PropertName100 = alex" }; -
另一个想法,如果您可以获取 JSON 格式的输入,那么您可以使用 Newtonsoft.Json 并将其反序列化到您的
RequestData对象中。 -
正如@gilliduck 所指出的,如果没有更多关于您要达到的目标的上下文,这个问题并不能真正回答。例如,您所说的“RequestData”是什么?如果属性名称匹配,也许您可以使用 AutoMapper 或其他库。
标签: c# .net dictionary