2013-03-17 34 views
9

C# aşağıdaki dizesi vardır:tek bir teklifle çift tırnak değiştirilmesi

string ptFirstName = tboxFirstName.Text; 

ptFirstName döner: Ben sayısız varyasyonları denedim 'John'

bu dönüştürmek istediğiniz "John"

Aşağıdakiler, ancak çift tırnakları tek tırnak işareti ile değiştiremiyorum:

ptFirstName.Replace("\"", "'"); 

Herkes beni aydınlatabilir mi?

Amacım bir XML dosyasına bu yazmaktır:

ptFirstName.Replace("\"", "'"); 

çalışmıyor

writer.WriteAttributeString("first",ptFirstName); // where ptFirstName is 'John' in single quotes. 
+0

1. "Değiştir" bir * yeni * dizgisi döndürür 2. Neden "WriteAttributeString" ile veri yapılıyor? (Her iki durumda da "doğru" olarak kodlanmalıdır.) –

+0

Bunun nedeni, tek bir tırnak işareti arayan bir aygıt tarafından okunan bir SD kartında bu formatta buna ihtiyacım olmasıdır. Bu, bu şekilde ... – user2058253

cevap

16

nedeni string değişmez olmasıdır. Bunun yerine,

ptFirstName = ptFirstName.Replace("\"", "'"); 

'u kullanmanız gerekir. İşte bir demo on ideone.

1

Metin kutusuna "John" yazmadınız, ancak sadece John yazdığınız ve bir kesme noktası belirlediğinizde ve görsel stüdyosunda değişkene baktığınız sırada dize etrafında tırnaklar gördüğünüzü tahmin edeceğim?

Eğer öyleyse, o zaman ki tırnakların dizenin bir parçası olmadığını, ancak sadece değerin bir dizge olduğunu size gösterdiğinin farkına varın. Hata ayıklayıcı tarafından eklenirler. Yapacak olsaydınız, alıntıları göremezdiniz.

.

+0

Yani sanırım düzgün bir şekilde dönüştürüyorum. Ve yine de xml dosyasına yazdığımda ve xml dosyasının "John" yerine aşağıdaki örnekte olduğu gibi "John" yazmasını istediğimde, ben ... user2058253

İlgili konular