在 C# 中使用三元运算符显示数组内容
Displaying the array contents by using ternary operators in C#
你能解释一下这个片段代码吗?
arr[i] + (i < arr.Length - 1 ? ", " : "")
- 为什么是 "minus 1"。即使我输入 +1 甚至 +5 - 不管怎样 - 结果都是一样的。如何阅读此片段“-1”?
因为arr.Length与数组的总长度有关,从1开始,而数组本身是从0开始的。因此,要获取数组中的最后一个元素,正确的代码是长度 - 1.
代码本身在除最后一个元素之外的任何元素之后添加一个逗号,并在最后一个元素添加一个空字符串。
三元运算符的计算结果如下
condition ? result if condition is true : result if condition is false
因此在您的示例中 arr[i] + (i < arr.Length - 1 ? ", " : "")
打印数组的一个元素,后跟一个逗号和一个 space 直到数组中的最后一个元素,它不打印逗号。
数组的最后一个元素位于索引 array.Length - 1
arr[i] + (i < arr.Length - 1 ? ", " : "")
这段代码是这样写的:
Add ,
(comma) after each element of array until it is last element, in that case - add nothing.
为什么 -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);
你能解释一下这个片段代码吗?
arr[i] + (i < arr.Length - 1 ? ", " : "")
- 为什么是 "minus 1"。即使我输入 +1 甚至 +5 - 不管怎样 - 结果都是一样的。如何阅读此片段“-1”?
因为arr.Length与数组的总长度有关,从1开始,而数组本身是从0开始的。因此,要获取数组中的最后一个元素,正确的代码是长度 - 1.
代码本身在除最后一个元素之外的任何元素之后添加一个逗号,并在最后一个元素添加一个空字符串。
三元运算符的计算结果如下
condition ? result if condition is true : result if condition is false
因此在您的示例中 arr[i] + (i < arr.Length - 1 ? ", " : "")
打印数组的一个元素,后跟一个逗号和一个 space 直到数组中的最后一个元素,它不打印逗号。
数组的最后一个元素位于索引 array.Length - 1
arr[i] + (i < arr.Length - 1 ? ", " : "")
这段代码是这样写的:
Add
,
(comma) after each element of array until it is last element, in that case - add nothing.
为什么 -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);