我需要将字符;
和换行符替换为字段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 , ". ");
答案 0 :(得分:2)
在Environment.NewLine
调用中使用Replace()
的问题是,环境中的换行符不一定与字符串中实际使用的字符匹配。你的可能有\r\n
(窗口),但实际存储的只是\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", ". ");