Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将字符串拆分为列表<;字符串>;从添加'\n\r';作为行尾?_C#_Arrays_String - Fatal编程技术网

C# 如何将字符串拆分为列表<;字符串>;从添加'\n\r';作为行尾?

C# 如何将字符串拆分为列表<;字符串>;从添加'\n\r';作为行尾?,c#,arrays,string,C#,Arrays,String,我的XAML文件中有一个文本框: <TextBox VerticalScrollBarVisibility="Visible" AcceptsReturn="True" Width="400" Height="100" Margin="0 0 0 10" Text="{Binding ItemTypeDefinitionSc

我的XAML文件中有一个文本框:

<TextBox 
             VerticalScrollBarVisibility="Visible" 
             AcceptsReturn="True" 
             Width="400" 
             Height="100" 
             Margin="0 0 0 10" 
             Text="{Binding ItemTypeDefinitionScript}"
             HorizontalAlignment="Left"/>
问题是字符串显然在每行末尾都有'\n\r',因此Split('\n')只会像Split('\r')一样获取其中一行,并且在键入以下内容时使用Environment.Newline.ToCharArray():

one
two
three
产生以下结果:

one||two||three
但我当然希望它能产生这样的效果:

one|two|three
什么是单行程序,可以简单地将以“
\n\r
”结尾的字符串解析为
列表?

使用以
字符串[]
为分隔符的重载:

itemTypeDefinitionScript.Split(new [] { Environment.NewLine }, 
                               StringSplitOptions.RemoveEmptyEntries);

类似这样的方法可能会奏效:

string input = "line 1\r\nline 2\r\n";
List<string> list = new List<string>(
                           input.Split(new string[] { "\r\n" }, 
                           StringSplitOptions.RemoveEmptyEntries));
string input=“第1行\r\n第2行\r\n”;
列表=新列表(
input.Split(新字符串[]{“\r\n”},
StringSplitOptions.RemoveEmptyEntries);
用适合您需要的分隔符字符串替换
“\r\n”

尝试以下操作:

List<string> list = new List<string>(Regex.Split(input, Environment.NewLine));
List List=新列表(Regex.Split(input,Environment.NewLine));
次要添加:

List<string> list = new List<string>(
                           input.Split(new string[] { "\r\n", "\n" }, 
                           StringSplitOptions.None));
List List=新列表(
input.Split(新字符串[]{“\r\n”,“\n”},
StringSplitOptions.None);

将捕获不带“\r”(我有许多来自古代FORTRAN FIFO代码的示例…)的案例,并且不会丢弃任何行。

您确定它是
\n\r
而不是相反的方式吗?可能是相反的方式,但我认为Environment.NewLine的顺序是正确的,因此它可以将这两个字符上的行作为单位分隔符进行拆分
List<string> list = new List<string>(
                           input.Split(new string[] { "\r\n", "\n" }, 
                           StringSplitOptions.None));