【发布时间】:2017-02-01 11:38:50
【问题描述】:
这是我最好的问题陈述。请善待。
情况如下:
我有一个字符串“InputValues”,其中包含逗号分隔格式的值: chkAwareness1,chkAwareness2,chkAwareness6,chkAwareness9,chkAwareness13...
如果名称与我在上面的字符串变量中的名称匹配,我需要用 bool 值填充一个对象。
示例: 如果 InputValues 包含“chkAwareness1”,则“public bool chkAwareness1”应设置为 true,否则为 false。
public class SurveyCheckBox
{
public bool chkAwareness1 { get; set; }
public bool chkAwareness2 { get; set; }
public bool chkAwareness3 { get; set; }
public bool chkAwareness4 { get; set; }
public bool chkAwareness5 { get; set; }
public bool chkAwareness6 { get; set; }
public bool chkAwareness7 { get; set; }
.
.
.
}
public void createObjectSurveyCheckBox(string InputValues)
{
string[] ChkValues = InputValues.Split(',');
SurveyCheckBox surveyChkBoxObj = new SurveyCheckBox();
for (int i = 0; i < NumberOfPropertyInSurveyCheckBox ;i++ )
{
// typeof(SurveyCheckBox).GetProperties()[i].Name
}
}
我搜索并找到了 GetProperties 方法,通过它我可以获取属性的名称,但我无法弄清楚逻辑..如何搜索值并将它们分配给 bool 属性。
请帮忙。
【问题讨论】:
-
如果有人更改变量名,为什么要编写会静默中断的代码(在运行时)?而是使用单个
Dictionary<string, bool>或Dictionary<int, bool>。 -
这些值来自 Angular 应用程序的 http 请求,我在我的 webApi 中接收它。它是一个 Intranet 应用程序,代码更改将只在我手中。有 63 个复选框,其值需要发送到 Webapi,而不是发送具有 63 个值的对象。我们刚刚发送了那些被选中的复选框的名称。
-
没有理由编写不安全、低效且不易维护和理解的代码。您也不会为数据库中的每条记录使用一个表,如果它们代表相同的实体,您会将这些记录插入到同一个表中。
-
我同意,我暂时把这段代码放上来,想想更好的办法。
标签: c#