2012-06-02 5 views
0

Мне нужно заменить символы ; и нанести удар в поле p.notas. Я попробовал это, но он не заменяет разрывы строк.заменить символы в результате

var res = from p in miDataContext.clientes 
      orderby p.nombreCom 
      select        
       (p.nombreCom ?? "") + ";" + 
       (p.razon ?? "") + ";" + 
       (p.nif ?? "") + ";" +         
       ((p.notas ?? "").Replace (";" ,".")) 
        .Replace(Environment.NewLine , ". "); 

ответ

2

Проблема с использованием Environment.NewLine в вашем Replace() вызова является то, что символ новой строки (ы) в вашей среде не моя обязательно соответствует тому, что на самом деле используется в строке. Вероятно, у вас есть \r\n (windows), но то, что на самом деле хранится, равно \n. Этот шаблон определенно не находится в строке в этом случае. Вам нужно будет проверить все варианты новой строки.

Предполагая, что все это нормально в LINQ to SQL, просто добавьте больше вызовов замены для каждого типа новой строки.

var res = from p in miDataContext.clientes 
      orderby p.nombreCom 
      select 
       (p.nombreCom ?? "") + ";" + 
       (p.razon ?? "") + ";" + 
       (p.nif ?? "") + ";" +         
       ((p.notas ?? "").Replace(";", ".")) 
        .Replace("\r\n", ". ") 
        .Replace("\n", ". ") 
        .Replace("\r", ". "); 
+0

Хорошо работает! Спасибо – aco

Смежные вопросы