Linux .net核心字符串运算符不会以例外结果执行

Linux .net核心字符串运算符不会以例外结果执行,linux,.net-core,Linux,.net Core,SDK:.net核心3.1 环境:ubuntu 18/04 代码: 结果: 3 -1 -> not as expected True 2 True False -> not as expected 你需要使用。读了这篇文章,你就会明白发生了什么 Console.WriteLine("abc\n".IndexOf("\n", StringComparison.OrdinalIgnoreCase)); Console.WriteLine("abc\r\n".IndexOf("\

SDK:.net核心3.1 环境:ubuntu 18/04

代码:

结果:

3
-1   -> not as expected
True
2
True
False   -> not as expected
你需要使用。读了这篇文章,你就会明白发生了什么

Console.WriteLine("abc\n".IndexOf("\n", StringComparison.OrdinalIgnoreCase));
Console.WriteLine("abc\r\n".IndexOf("\n", StringComparison.OrdinalIgnoreCase));
Console.WriteLine("abc\r\n".Contains("\n", StringComparison.OrdinalIgnoreCase));
Console.WriteLine("abc\r\n".Split('\n').Length);
Console.WriteLine("abc\n".EndsWith("\n", StringComparison.OrdinalIgnoreCase));
Console.WriteLine("abc\r\n".EndsWith("\n", StringComparison.OrdinalIgnoreCase));

此行为可能与EOL符号的不同处理有关,请查看此
Console.WriteLine("abc\n".IndexOf("\n", StringComparison.OrdinalIgnoreCase));
Console.WriteLine("abc\r\n".IndexOf("\n", StringComparison.OrdinalIgnoreCase));
Console.WriteLine("abc\r\n".Contains("\n", StringComparison.OrdinalIgnoreCase));
Console.WriteLine("abc\r\n".Split('\n').Length);
Console.WriteLine("abc\n".EndsWith("\n", StringComparison.OrdinalIgnoreCase));
Console.WriteLine("abc\r\n".EndsWith("\n", StringComparison.OrdinalIgnoreCase));