我的XAML文件中有一个文本框:
<TextBox
VerticalScrollBarVisibility="Visible"
AcceptsReturn="True"
Width="400"
Height="100"
Margin="0 0 0 10"
Text="{Binding ItemTypeDefinitionScript}"
HorizontalAlignment="Left"/>
Run Code Online (Sandbox Code Playgroud)
我得到一个字符串,我发送给CreateTable(string)它反过来调用CreateTable(List<string>).
public override void CreateTable(string itemTypeDefinitionScript)
{
CreateTable(itemTypeDefinitionScript.Split(Environment.NewLine.ToCharArray()).ToList<string>());
}
public override void CreateTable(List<string> itemTypeDefinitionArray)
{
Console.WriteLine("test: " + String.Join("|", itemTypeDefinitionArray.ToArray()));
}
Run Code Online (Sandbox Code Playgroud)
问题是字符串显然在每一行的末尾都有'\n\r',所以Split('\n')只得到其中一个,就像Split('\ r')一样,并使用Environment.Newline.ToCharArray ()当我输入这个:
one
two
three
Run Code Online (Sandbox Code Playgroud)
产生这个:
one||two||three
Run Code Online (Sandbox Code Playgroud)
但我当然想要它产生这个:
one|two|three
Run Code Online (Sandbox Code Playgroud)
什么是单行简单地将带有' \n\r'结尾的字符串解析为List<string>?
Fre*_*örk 39
像这样的东西可以工作:
string input = "line 1\r\nline 2\r\n";
List<string> list = new List<string>(
input.Split(new string[] { "\r\n" },
StringSplitOptions.RemoveEmptyEntries));
Run Code Online (Sandbox Code Playgroud)
替换"\r\n"为适合您需要的分离器串.
Rub*_*ias 12
试试这个:
List<string> list = new List<string>(Regex.Split(input, Environment.NewLine));
Run Code Online (Sandbox Code Playgroud)
使用string.Split带有string[]分隔符的重载:
itemTypeDefinitionScript.Split(new [] { Environment.NewLine },
StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
次要添加:
List<string> list = new List<string>(
input.Split(new string[] { "\r\n", "\n" },
StringSplitOptions.None));
Run Code Online (Sandbox Code Playgroud)
将捕获没有“ \ r”的情况(我有很多这样的例子来自古老的FORTRAN FIFO代码...),并且不会丢掉任何行。
| 归档时间: |
|
| 查看次数: |
39327 次 |
| 最近记录: |