arr[i] + (i < arr.Length - 1 ? ", " : "")
Этот код выглядит следующим образом:
Добавляйте ,
(запятую) после каждого элемента массива до последнего элемента, в этом случае - добавьтеничего.
Почему -1
?Ну, на самом деле это arr.Length - 1
и он указывает на последний элемент массива, так что условие (i < arr.Length - 1
) проверяет, находитесь ли вы в последнем элементе вашего массива.
Если у вас есть массив длины 5
:
int[] arr = new [] {1,2,3,4,5};
ваш arr.Length
равен 5
, но последний элемент - это элемент с индексом 4
:
arr[0] = 1
arr[1] = 2
arr[2] = 3
arr[3] = 4
arr[4] = 5
, поэтому arr.Length - 1
будет указывать на ваш последний5
:
arr[4] == arr[arr.Length - 1] //(arr.Length - 1 = 5 - 1 = 4)
Я предполагаю, что ваш код выглядит примерно так:
string joinedArray = string.Empty;
for(int i = 0; i < arr.Length; i++)
{
joinedArray += arr[i] + (i < arr.Length - 1 ? ", " : "");
}
Если вы введете +1
или +5
, вы заметите,что ваш результат (если вы храните это выражение где-нибудь или печатаете) будет содержать ,
(запятую) в конце вашего результата.
И еще кое-что, для этой ситуации есть метод string.Join
и это даст вам тот же результат:
string.Join(", ", arr);