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 , ". ");
4

1 回答 1

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", ". ");
于 2012-06-02T11:03:44.127 回答