在我的网络表单上,我有一个令牌框,用户可以在其中选择多个答案,然后使用~
对它们进行编译以将它们分开。我想在这个页面上添加一个分数,我需要分割这些值。我尝试使用它,它说不能显式地将char转换为字符串。让我们说字段的答案是3~4~5
如何以允许我执行计算的方式将其转换为3
4
5
。
string List1 = threeriskfactors.Text.ToString();
string[] Vals1 = List1.Split('~');
String name1 = List1[0];
String name2 = List1[1];
我从下拉列表中添加单个值没有任何问题,但这让我很难过。对于我的其他计算,我的代码看起来像这样:
int a1 = Convert.ToInt32(cancerisabnormalcells.SelectedValue.ToString());
int b1 = Convert.ToInt32(cancerissecondcause.SelectedValue.ToString());
int d1 = Convert.ToInt32(americancancersociety.SelectedValue.ToString());
int final1 = a1 + b1 + d1;
如何拆分令牌框值以便将其添加到此计算中?
答案 0 :(得分:1)
如果你想要它们的总和那么它就像:
int final = List1.Split('~').Select(s => int.Parse(s)).Sum();
要在解析之前验证每个值以查看它是否可解析,您可以使用ForEach
的{{1}}方法:
List
答案 1 :(得分:0)
IEnumerable<int> vals1 = list1.Select(e=> Convert.ToInt32(e));
int final1=0;
foreach(int val in vals1)
{
final1 = final1 + val;
}
这应该这样做。
答案 2 :(得分:0)
this.handleUsernameInput
顺便说一句,我不确定你是如何连接值来获得波浪号分隔的字符串。但是,值得注意的是,HTML表单将自动从共享相同名称的HTML表单元素创建以分号分隔的值列表。