C# 如何基于“拆分字符串”\r\n“;在c中“当字符串值有”时\r\n\r\n“;

C# 如何基于“拆分字符串”\r\n“;在c中“当字符串值有”时\r\n\r\n“;,c#,C#,我有这根绳子 var str="\r\nFeatures\r\nWins\r\n\r\n"; 我希望在“\r\n”上拆分,但两个“\r\n\r\n”之间的值为null或空白 我希望获得结果3项=Features赢得nullorwhitespace 我写了这段代码,但得到了两项=Features赢了 var val = str.TrimStart('\r', '\n', '\t').TrimEnd('\r', '\n', '\t').Split("\r\n"); 当前代码的问题是TrimEnd

我有这根绳子

var str="\r\nFeatures\r\nWins\r\n\r\n";
我希望在
“\r\n”
上拆分,但两个“\r\n\r\n”之间的值为null或空白

我希望获得结果3项=
Features赢得nullorwhitespace

我写了这段代码,但得到了两项=
Features赢了

var val = str.TrimStart('\r', '\n', '\t').TrimEnd('\r', '\n', '\t').Split("\r\n");

当前代码的问题是
TrimEnd
调用删除了所有尾随的
\r\n
字符

str.TrimStart('\r', '\n', '\t') // "Features\r\nWins\r\n\r\n"
   .TrimEnd('\r', '\n', '\t') // "Features\r\nWins"
   .Split("\r\n"); // ["Features", "Wins"]
对于示例文本,您可以执行以下操作以获得所需的结果。不过,根据您想对选项卡执行的操作,它不会起作用:

var str="\r\nFeatures\r\nWins\r\n\r\n";

var val = str.TrimStart('\r') // "\nFeatures\r\nWins\r\n\r\n"
             .TrimStart('\n') // "Features\r\nWins\r\n\r\n"
             .TrimEnd('\n') // "Features\r\nWins\r\n\r"
             .TrimEnd('\r') // "Features\r\nWins\r\n"
             .Split("\r\n"); // ["Features, "Wins", ""]

当前代码的问题是
TrimEnd
调用删除了所有尾随的
\r\n
字符

str.TrimStart('\r', '\n', '\t') // "Features\r\nWins\r\n\r\n"
   .TrimEnd('\r', '\n', '\t') // "Features\r\nWins"
   .Split("\r\n"); // ["Features", "Wins"]
对于示例文本,您可以执行以下操作以获得所需的结果。不过,根据您想对选项卡执行的操作,它不会起作用:

var str="\r\nFeatures\r\nWins\r\n\r\n";

var val = str.TrimStart('\r') // "\nFeatures\r\nWins\r\n\r\n"
             .TrimStart('\n') // "Features\r\nWins\r\n\r\n"
             .TrimEnd('\n') // "Features\r\nWins\r\n\r"
             .TrimEnd('\r') // "Features\r\nWins\r\n"
             .Split("\r\n"); // ["Features, "Wins", ""]

简单的选择是,只需将“\r\n\r\n”替换为您希望在其间看到的任何内容,然后拆分

var val = str
       .Replace("\r\n\r\n", "\r\nempty\r\n")
       .Split(new []{"\r\n"}, System.StringSplitOptions.RemoveEmptyEntries);

简单的选择是,只需将“\r\n\r\n”替换为您希望在其间看到的任何内容,然后拆分

var val = str
       .Replace("\r\n\r\n", "\r\nempty\r\n")
       .Split(new []{"\r\n"}, System.StringSplitOptions.RemoveEmptyEntries);

你也可以试试这个。它还将
字符保留在开头和结尾,但可以通过删除结果数组的第一个和最后一个元素来排除这些字符:

var array = str.Split(new string[] { "\r\n" }, StringSplitOptions.None); // 
array = ["","Features","","Wins",""]

这是参考链接:

您可能也想试试这个。它还将
字符保留在开头和结尾,但可以通过删除结果数组的第一个和最后一个元素来排除这些字符:

var array = str.Split(new string[] { "\r\n" }, StringSplitOptions.None); // 
array = ["","Features","","Wins",""]
这是参考链接:

var result=str.Split(new[]{“\n”},StringSplitOptions.None)。其中(s=>!s.Equals(“\r”)。ToArray()
var result=str.Split(新[]{“\n”},StringSplitOptions.None)。其中(s=>!s.Equals(“\r”)。ToArray()