c# - 在 C# 中使用三元运算符显示数组内容
问题描述
请你能解释一下这个片段代码吗?
arr[i] + (i < arr.Length - 1 ? ", " : "")
- 为什么它是“负1”。即使我将 +1 或什至 +5 -whatever - 结果是一样的。如何阅读这个片段'-1'?
解决方案
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
is 5
,但最后一个元素,是带有 index 的元素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
or +5
,您会注意到您的结果(如果您将此表达式存储在某处或打印)将,
在结果末尾包含 (comma)。
更重要的是,对于这种情况,有一种string.Join
方法,它会给你同样的结果:
string.Join(", ", arr);
推荐阅读
- python - 从 Mysql 连接中检索字段返回 AttributeError: 'NoneType' object has no attribute 'format' 错误
- windows - “错误的配置选项:KexAlgorithms”
- c# - 如何将 BLL.cs 上的 sql 中的存储实例显示到 c# 程序的 WPF 页面上?
- sql - GBQ连接三个大表导致查询过载
- c# - 在 Unity C# 中使用索引查找字典的值
- google-sheets-formula - 计算 Google 表格中单元格列表中最大的重复项
- ios - 将多个时间标签与主机时间同步
- css - 为什么 ng-container 不响应样式?
- android - Android-Layout:将两个TextView并排放置,并根据第一个TextView的大小调整第二个TextView的大小
- reactjs - 图片违反了以下内容安全策略指令 - 创建 React App