В Вашем примере логика индексатора проста, поэтому смысл не виден.
Приведу пример из жизни. Мне надо было хранить и отображать данные в виде, где в первой строке одно значение, во второй строке два значения, в третьей - три и т.д. Отображались в ui они в виде пирамиды. Первая мысль, это квадратный двумерный массив по размеру самой большой последней строки и пустое пространство вершины забить нолями. Отобразить такой массив пирамидой легко. Но тогда у меня возникала трудность в работе с этим массивом, т.к. чтобы забрать нужные значения, нужно правильно отсекать пустые значения, да и как-то не комильфо кучу не нужных значений хранить. Следом приходит мысль сделать массив массивов с разной длинной, но чтоб сделать итерацию по такому массиву, а потом отобразить, нужно тоже лишние телодвижения делать. И тогда я сделал обычный список, где данные хранились в порядке как 1, 21, 22, 31, 32, 33 и т.д., но приделал ему индексатор [ , ], где я указывал строку и положение в строке, а логика этого индексатора уже высчитывала реальное значение элемента: ноль (т.е. пустое пространство у верхушки пирамиды) или значение из списка.
Во первых я решил проблему лишних значений, во вторых, по данным я мог пройтись одним форичем, а не вложенными форами, без проверок лишних значений и в третьих - отображалось также легко как и двумерный массив.