Вы можете использовать метод расширения Aggregate
(от System.Linq
), чтобы применить функцию накопителя к каждому элементу в массиве. Он работает, беря начальное значение (в данном случае мы можем использовать 0
, поскольку 0 ^ n == n
) и применяя функцию аккумулятора для каждого элемента в списке.
В нашем случае аккумулятор просто добавляет XOR числа со следующим значением снова возвращается к числу:
int[] numbers = {10, 25, 40, 55};
int result = numbers.Aggregate(0, (accumulation, next) => accumulation ^ next);
// result = 12