求助!C#使用Replace不能正常去除换行符

千宫纱 2014-12-10 09:58:14
我这里有一个功能是把一个有2000+条(以后会持续大量增加)数据的List里面的每一个实体类中一个部分string类型的属性拼起来成一个string,但其中有一个string存在一个或多个“\n”字符

现在我要把“\n”去掉,可是Replace(@"\n","")完全没作用,网上说用


char[] strArr =str.ToCharArray();
string newStr = "";
foreach (char cr in strArr)
{
if (cr == (char)10)
{
continue;
}
newStr += cr.ToString();
}


但这种算法效率低下,我这个存在一个或多个“\n”字符的string长度可能50+,这样循环估计前端都卡死不能响应了。

哪位大神有比较高效的办法去除掉这些“\n”?
...全文
328 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2014-12-10
  • 打赏
  • 举报
回复

            string stest = "abc\ndfdfd\nddd";
            stest = stest.Replace("\n","");
  • 打赏
  • 举报
回复
str.ToCharArray()里面用了逐个复制至数组,自然慢了

var result = new System.Text.StringBuilder(strList.Length / 2 );
using(var sr = new StringReader(strList))
{
        result.Append(sr.ReadLine());      //StringReader内部用的Substring,相当于整块复制而不是逐个
}
result.ToString();
其实,如果你的原始数据是字节流,用binaryReader应该会更快的
千宫纱 2014-12-10
  • 打赏
  • 举报
回复
引用 1 楼 fate1987 的回复:

static void Main(string[] args)
        {
            foreach (var item in GetData())
            {
                Console.Write(item.Replace("\n", ""));
            }
            Console.Write("完成!");
            Console.Read();
        }



        private static List<string> GetData()
        {
            List<string> list = new List<string>();
            list.Add("1123123123123123\n");
            list.Add("1123123123123124\n");
            list.Add("1123123123123125\n");
            return list;
        }
我怎么可以??
噗...奇怪,直接复制你的Replace过去真的可以!,哦,我加了一个@给转义了...... 多谢你啦~
火拼阿三 2014-12-10
  • 打赏
  • 举报
回复

static void Main(string[] args)
        {
            foreach (var item in GetData())
            {
                Console.Write(item.Replace("\n", ""));
            }
            Console.Write("完成!");
            Console.Read();
        }



        private static List<string> GetData()
        {
            List<string> list = new List<string>();
            list.Add("1123123123123123\n");
            list.Add("1123123123123124\n");
            list.Add("1123123123123125\n");
            return list;
        }
我怎么可以??

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧