. net Оператор строки ядра не выполняется с ожидаемым результатом - PullRequest
2 голосов
/ 14 апреля 2020

SDK:. net core 3.1 Среда: ubuntu 18/04

код:

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

результат:

3
-1   -> not as expected
True
2
True
False   -> not as expected

1 Ответ

0 голосов
/ 14 апреля 2020

Вам необходимо использовать StringComparison.OrdinalIgnoreCase . Прочтите это, и вы поймете, что происходит.

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));

https://docs.microsoft.com/en-us/dotnet/standard/base-types/best-practices-strings

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...