2016-10-18 37 views
0

我有一個字符串s3讓我們假設包含「阿拉巴馬州,阿拉斯加州,亞利桑那州」和 讓我們假設txtResidentState.Text包含「阿拉斯加州」。現在我想從s3字符串中刪除「阿拉斯加」,最後的字符串應該是「阿拉巴馬州,阿拉斯加州」。最終的字符串應該添加到txtJurisdiction。我也想用文字來保持「,」。 我寫了以下幾行代碼從字符串中刪除單詞並在其中保留逗號

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

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

上面的代碼不起作用。

+1

你想刪除「阿拉斯加」,但在產生的字符串「阿拉斯加」字仍然存在?請在此更清楚 – 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()'來檢查是否包含一個單詞。所以你只做大部分工作來檢查你是否需要做一些工作。那麼我寧願總是做完整的工作,並有簡單的代碼。優化如果我有一個性能問題,這是不可能的。 –

相關問題