C# 字符串拆分会产生与预期不同的结果

C# 字符串拆分会产生与预期不同的结果,c#,string,split,C#,String,Split,它返回的不是我所期望的。 我期望的是: ab 驾驶室 ab 我做错了什么 由于您正在对“\r”和“n”进行拆分,String.Split从“\r\n”中提取空字符串 查看StringSplitOptions。删除mptyentries或使用新字符串[]{“\r\n”}而不是“\r\n”。tocharray()不要这样做。tocharray() 它将被拆分\r\n 这就是为什么你有空值 像这样的东西应该有用 var aa = ("a" & Environment.NewLine &

它返回的不是我所期望的。 我期望的是:

ab
驾驶室
ab


我做错了什么

由于您正在对“\r”和“n”进行拆分,
String.Split
从“\r\n”中提取空字符串

查看
StringSplitOptions。删除mptyentries
或使用
新字符串[]{“\r\n”}
而不是
“\r\n”。tocharray()

不要这样做。tocharray()

它将被拆分\r\n

这就是为什么你有空值

像这样的东西应该有用

var aa = ("a" & Environment.NewLine & "b" & Environment.NewLine & "c").Split(New String[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries);

您只是使用
\r
\n
作为分隔符拆分字符串,而不是将
\r\n
一起拆分。

此选项也可以,
字符串[]b=Regex.Split(abc,“\r\n”)

Environment.NewLine可能是一条可行的道路,但如果不是这样的话,它也行得通

var ab = "a\r\nb\r\nc";
var abs = ab.Split(new[]{"\r\n"}, StringSplitOptions.None);

我的理解是,您提供给Split方法的字符串字符序列是分隔符字符的列表,而不是由几个字符组成的单个分隔符

在您的情况下,拆分将“R”和“N”字符作为分隔符。因此,当遇到“\r\n”序列时,它将返回这两个分隔符之间的字符串,即空字符串