2016-10-18 4 views
0

私は、「Alabama、Alaska、Arizona」と「 」が含まれていると想定される文字列s3を「txtResidentState.Textには「Alaska」が含まれているとしましょう。今私はs3の文字列から "Alaska"を削除したいと最後の文字列は "アラバマ、アラスカ"でなければなりません。最後の文字列をtxt管轄に追加する必要があります。また、私は単語の中で "、"を維持したい。 以下のコード行を書きました文字列から単語を削除し、その中にコンマを入れてください

string CommonJurisdiction = s3; 
string Result; 
int index= CommonJurisdiction.IndexOf(txtResidentState.Text.ToString()); 

if(index != -1) 
{ 
    Result = CommonJurisdiction.Remove(index); 
    txtJurisdiction.Text = Result; 
} 

上記のコードは機能しません。

+1

"Alaska"は削除しますが、結果の文字列には "Alaska"という単語がありますか?これでもっと明確にしてください – Steve

答えて

0

アレイを分割し、アイテムが存在するかどうかを確認する必要があります。その後、それを除去して文字列を再構成します。

string[] commonJurisdiction = s3.Split(',').Select(s => s.Trim()).ToArray(); 
// make sure the spaces are filtered out by trimming 

string result; 
int index = commonJurisdiction.IndexOf(txtResidentState.Text); 

if(index >= 0) 
{ 
    commonJurisdiction.Remove(index); 
    result = string.Join(", ", commonJurisdiction); 
    txtJurisdiction.Text = Result; 
} 
0

あなたはString.SplitExceptString.Joinを使用することができます。

string wordsToRemove = txtResidentState.Text.Trim().Split(','); 
string[] words = s3.Split(','); 
txtJurisdiction.Text = String.Join(",", words.Except(wordsToRemove)); 

これは、単一の単語Alaskaで動作しますが、またテキストボックスはAlaska,Alabamaが含まれている場合。

+0

あなたは分割する前に実際に削除する単語が 's3'に存在することを確認しませんか?さもなければ、あなたは分かれていて何のためにも再会しません。 – sr28

+0

@ sr28:によって異なります。コードをもっと複雑にします。とにかく分割する必要があるので、単語が含まれているかどうかを確認するには 'Intersect ... Any()'を使わなければなりません。だから、あなたは仕事をしなければならないかどうかだけを確認するために仕事のほとんどをやっています。それから私はいつも完全な仕事をし、簡単なコードを持っていることを好むでしょう。ここにはないパフォーマンスの問題がある場合は最適化してください。 –

関連する問題