2017-07-11 7 views
0

下のコードでは、一重引用符を「&」と置き換えたいが、それは反映されていない。ディクショナリCの一重引用符を置換する#

if(this.selectdFilterValues.Any(kvp => kvp.Value.Contains("'"))) 
{ 
    this.selectdFilterValues.Select(kvp => kvp.Value.Replace("'", "&")); 
} 

また、私はそれが含まれている場合、私のJS関数以下の単一引用符が.Select場所に元のコレクションは変更されませんを使用して

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "tmp", 
    "<script type='text/javascript'>initViz('" + 
    JsonConvert.SerializeObject(this.selectdFilterValues) + 
    "');</script>", false); 
+0

ここで 'this.selectdFilterValues.Select(kvp => kvp.Value.Replace(" '、 "&"))を実行すると、LINQが動作し、foreachループやsomethinkで結果を実現する必要があります。 – KamikyIT

答えて

4

に当たらないとして、この単一引用符を処理します。それはあなたが望むことができる新しいIEnumerableにそれらを投影します。今すぐあなたは結果を投げ捨てているだけです。あなたは辞書による単純ループのForEachを使用して上書きすることができる機能の代わりに反復アプローチを使用して大丈夫なら、

this.selectedFilterValues = this.selectdFilterValues.ToDictionary(x => x.Key, x => x.Value.Replace("'", "&"));

または:あなたは、代わりに新しい辞書を作成するためにそれらを使用することができます古い値。

+0

エラー: 'bool'に 'Replace'の定義が含まれていません –

+0

エラーが発生した場合は、辞書に文字列値ではなくブール値が含まれていることを意味します。文字通り、元の投稿のコードスニペットからそれを取り出したので、コードスニペットが正確でない場合は調整してください。 –

+2

@ShwetaGupta値が 'bool'タイプの場合は、あなたの質問は意味をなさない。 –

関連する問題