将分隔记录转换为单独的字符串?
Convert delimited record to seperate strings?
在我的网络表单上,我有一个令牌框,用户可以在其中 select 多个答案,并使用 ~
将它们分开来编译它们。我正在尝试在此页面上添加一个分数,我需要拆分这些值。我试过使用它,它说不能将 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;
如何拆分令牌框值以便将其添加到此计算中?
如果你想要它们的总和,那么它很简单:
int final = List1.Split('~').Select(s => int.Parse(s)).Sum();
要在解析前验证每个值是否可解析,可以使用List
的ForEach
方法:
List1.Split('~').ToList().ForEach(s => { int a =0; int.TryParse(s, out a); final +=a; });
IEnumerable<int> vals1 = list1.Select(e=> Convert.ToInt32(e));
int final1=0;
foreach(int val in vals1)
{
final1 = final1 + val;
}
这应该可以做到。
var total = 0;
foreach (var item in list1.Split('~'))
total += Int32.Parse(item);
顺便说一下,我不确定您是如何连接这些值来获得波浪线分隔的字符串的。但是,值得注意的是 HTML 表单会自动从共享相同名称的 HTML 表单元素创建以分号分隔的值列表。
在我的网络表单上,我有一个令牌框,用户可以在其中 select 多个答案,并使用 ~
将它们分开来编译它们。我正在尝试在此页面上添加一个分数,我需要拆分这些值。我试过使用它,它说不能将 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;
如何拆分令牌框值以便将其添加到此计算中?
如果你想要它们的总和,那么它很简单:
int final = List1.Split('~').Select(s => int.Parse(s)).Sum();
要在解析前验证每个值是否可解析,可以使用List
的ForEach
方法:
List1.Split('~').ToList().ForEach(s => { int a =0; int.TryParse(s, out a); final +=a; });
IEnumerable<int> vals1 = list1.Select(e=> Convert.ToInt32(e));
int final1=0;
foreach(int val in vals1)
{
final1 = final1 + val;
}
这应该可以做到。
var total = 0;
foreach (var item in list1.Split('~'))
total += Int32.Parse(item);
顺便说一下,我不确定您是如何连接这些值来获得波浪线分隔的字符串的。但是,值得注意的是 HTML 表单会自动从共享相同名称的 HTML 表单元素创建以分号分隔的值列表。