将分隔记录转换为单独的字符串?

时间:2017-08-24 21:08:00

标签: c# asp.net linq type-conversion calculation

在我的网络表单上,我有一个令牌框,用户可以在其中选择多个答案,然后使用~对它们进行编译以将它们分开。我想在这个页面上添加一个分数,我需要分割这些值。我尝试使用它,它说不能显式地将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;

如何拆分令牌框值以便将其添加到此计算中?

3 个答案:

答案 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表单元素创建以分号分隔的值列表。