Что делает оператор исключающего ИЛИ в данном массиве?

Решаю задачу, вот тут в коде метода с рекурсией есть вот такой код:

int currentIncrement = string.IsNullOrEmpty(arrayToSearch[^1]) ? 1 : 0;
string[] newArrayToSearch = arrayToSearch[..^1]; // что значит [..^1]; 

Про 2 точки знаю, это показывает "от начала до ..^1"; А вот оператор исключающего ИЛИ что здесь делает, как это работает?
Из высшей математики помню что исключающее ИЛИ работает так: "Исключающее ИЛИ ложно тогда и только тогда, когда оба операнда равны True или False в одно и тоже время, во всех остальных случаях — true".


Могу предположить что в данном случае идёт сравнение объекта или индекса строки с 1...


Ответы (1 шт):

Автор решения: Michael Clifford

^ - является оператором индекса с конца

// пример кода
string[] words = new string[]
{
                // index from start    index from end
    "The",      // 0                   ^9
    "quick",    // 1                   ^8
    "brown",    // 2                   ^7
    "fox",      // 3                   ^6
    "jumped",   // 4                   ^5
    "over",     // 5                   ^4
    "the",      // 6                   ^3
    "lazy",     // 7                   ^2
    "dog"       // 8                   ^1
};              // 9 (or words.Length) ^0

За информацию спасибо @EvgeniyZ

→ Ссылка