0

私はいくつかのテキストを含むリストボックスを持っています.Otherの後にすべての文字列を取得したいです:そしてこれは私が使用するコードです

string[] causearr = lst_Box.Items[i].Value.Split('-');

SqlSrcComplainCgeAnalysis.InsertParameters["ID"].DefaultValue =causearr[0].ToString();                           SqlSrcComplainCgeAnalysis.InsertParameters["subId"].DefaultValue = causearr[2].ToString();

if (txt_OtherCause.Text != string.Empty && txt_OtherCause.Visible == true && (int.Parse(causearr[2].ToString()) == 7 || int.Parse(causearr[2].ToString()) == 15 || int.Parse(causearr[2].ToString()) == 21))
     SqlSrcComplainCgeAnalysis.InsertParameters["CauseComments"].DefaultValue = causearr[3].ToString().Substring(causearr[3].ToString().LastIndexOf(":") + 3);
else
      SqlSrcComplainCgeAnalysis.InsertParameters["CauseComments"].DefaultValue = string.Empty;

これがリストボックスのデータです

Cause:SpareParts-SubCause:Others: First Line
Cause:Technical-SubCause:Others: Second Line

したがって、このデータが変更された場合、「その他:」の後にデータを返す方法と、ユーザーの選択に応じて原因が変更されます。

4

3 に答える 3

1
string s = "Cause:SpareParts-SubCause:Others: First Line".Split(new char[] { ' ' }, 2)[1];
于 2012-04-24T08:20:11.913 に答える
0
string value = "Cause:SpareParts-SubCause:Others: First Line"

string[] lines = Regex.Split(value, ":Others:");

あなたは今lines[1]私が推測する必要があります

于 2012-04-24T08:25:16.130 に答える
0

できることは、最初に文字列をコロン「:」で分割することです。その後、配列の最後の項目が必要なデータになります。

result[0] == 'Cause'
result[1] == 'SpareParts-SubCause'
result[2] == 'Others'
result[4] == 'Cause'
result[5] == 'First Line'

または、正規表現を使用して、これらすべてをクールな方法で行うことができます。

http://msdn.microsoft.com/en-us/library/hs600312.aspx

于 2012-04-24T08:26:04.523 に答える