我知道在C#中「多替換」的想法並不是什麼新概念,這裏有很多解決方案。但是,我還沒有遇到任何優雅的解決方案,與Linq to Sql很好地交流。我的建議是創建一個擴展方法(稱爲,你猜對了,MultiReplace),它返回一個將多個Replace調用鏈接在一起的lambda表達式。所以實際上你會有以下幾點:C#多取代理念
x => x.SomeMember.MultiReplace("ABC", "-")
// Which would return a compiled expression equivalent to:
x => x.SomeMember.Replace("A", "-").Replace("B", "-").Replace("C", "-")
我想你對此的想法/輸入/建議。即使事實證明這是一個糟糕的主意,它似乎仍然是潛入表達樹的邪惡機會。您的反饋非常感謝。
-Eric
更多示例您想爲此使用表達式樹的任何原因? – driis 2011-01-05 21:05:45
我不知道有這樣的想要...! – Sean 2011-01-05 21:07:43
@driis - 因爲我假設以上面列出的格式(使用多重鏈接的Replace()調用)返回一個lambda表達式,當使用Linq to Sql時,在轉換爲臨時Sql時不會引發錯誤。嘗試創建一個只需在循環中調用Replace()或使用Regex.Replace的擴展方法,就會出錯。 – Didaxis 2011-01-05 21:15:44