2017-08-24 9 views
1

私のWebフォームには、ユーザーが複数の回答を選択できるトークンボックスがあり、~を使って複数の回答を選択してそれらを分けることができます。このページにスコアを追加しようとしています。これらの値を分割する必要があります。私はこれを使ってみましたが、明示的に文字列に変換することはできません。フィールドが答えると言うことができます私は私が計算を実行することが可能になるようにし345にそれを変換する方法を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; 

:私の他の計算のために私のコードは次のようになりますか?

答えて

1

あなたがそれらの合計をしたい場合、のように簡単です:それは解析する前に解析可能であるならば、あなたはListForEach方法を使用することができます参照してそれぞれの値を検証するために

int final = List1.Split('~').Select(s => int.Parse(s)).Sum(); 

List1.Split('~').ToList().ForEach(s => { int a =0; int.TryParse(s, out a); final +=a; }); 
+0

最終的には.Sum()を追加して結果を得る! – Dhanasekar

+0

@DhanasekarSMあなたがよく質問を読んでいないときに起こること。彼は後でそれらを使うためにすべての数字が必要だと思った。しかし、あなたがそれを言う直前に、私はそれを得ました。 –

+0

ありがとうございました。私には別の質問があります。ユーザーがトークンボックスに何も応答しないと失敗します。どうすればnullをチェックできますか? @ SimonB。 –

0
IEnumerable<int> vals1 = list1.Select(e=> Convert.ToInt32(e)); 
int final1=0; 
foreach(int val in vals1) 
{ 
    final1 = final1 + val; 
} 

これはそれを行う必要があります。

0
var total = 0; 

foreach (var item in list1.Split('~')) 
    total += Int32.Parse(item); 

ちなみに、チルダ区切り文字列を取得するためにどのように値を連結するかはわかりません。しかし、HTMLフォームは、同じ名前を持つHTMLフォーム要素からセミコロンで区切られた値のリストを自動的に作成することに注意してください。

関連する問題