首页 > C# > 在 .NET 中拆分换行符上的字符串的最简单方法?

在 .NET 中拆分换行符上的字符串的最简单方法?

上一篇 下一篇

我需要在 .NET 中将字符串拆分为换行符,我知道拆分字符串的唯一方法是使用 Split 方法。但是,这不允许我(轻松)在换行符上拆分,那么最好的方法是什么?

分割线

网友回答:

使用?StringReader

using (System.IO.StringReader reader = new System.IO.StringReader(input)) {
    string line = reader.ReadLine();
}

分割线

网友回答:

要拆分字符串,您需要使用接受字符串数组的重载:

string[] lines = theText.Split(
    new string[] { Environment.NewLine },
    StringSplitOptions.None
);

编辑:
如果要处理文本中不同类型的换行符,可以使用匹配多个字符串的功能。这将正确拆分任一类型的换行符,并保留文本中的空行和间距:

string[] lines = theText.Split(
    new string[] { "rn", "r", "n" },
    StringSplitOptions.None
);

分割线

网友回答:

尽量避免使用字符串。拆分作为常规解决方案,因为您将在使用该函数的任何地方使用更多内存 – 原始字符串和拆分副本,都在内存中。相信我,当你开始扩展时,这可能是一个地狱般的问题——运行一个处理 32MB 文档的 100 位批处理应用程序,你会在八个并发线程上胡说八道。不是说我以前去过那里…

相反,请使用这样的迭代器;

public static IEnumerable<string> SplitToLines(this string input)
{
    if (input == null)
    {
        yield break;
    }

    using (System.IO.StringReader reader = new System.IO.StringReader(input))
    {
        string line;
        while ((line = reader.ReadLine()) != null)
        {
            yield return line;
        }
    }
}

这将允许您围绕数据进行更高效的内存循环;

foreach(var line in document.SplitToLines()) 
{
    // one line at a time...
}

当然,如果你想把它全部放在内存中,你可以这样做;

var allTheLines = document.SplitToLines().ToArray();

模板简介:该模板名称为【在 .NET 中拆分换行符上的字符串的最简单方法?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 187次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 03-01
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信模板 自适应 单页式简历模板 微信文章 微信公众平台 微信图片 企业网站 响应式 html5 微信素材
您可能会喜欢的其他模板