C# 检查哪个数组的值为0
我正在循环一个有6个值的数组。这些值由外部脚本填充。如何检查哪个数组[I]的值为0? 当前,循环显示有多少个0值。但不显示哪个数组[i]的值为0C# 检查哪个数组的值为0,c#,unity3d,C#,Unity3d,我正在循环一个有6个值的数组。这些值由外部脚本填充。如何检查哪个数组[I]的值为0? 当前,循环显示有多少个0值。但不显示哪个数组[i]的值为0 public int[] Total_Val; void Start() { for(int i = 0; i<Total_Val.Length; i++) { if(Total_Val[i] <= 0) {
public int[] Total_Val;
void Start()
{
for(int i = 0; i<Total_Val.Length; i++)
{
if(Total_Val[i] <= 0)
{
Debug.Log("The array" +Total_Val[i]+" has null value");
}
}
}
public int[]总计;
void Start()
{
对于(int i=0;i如果要打印元素的索引为0,则应满足以下条件:
Debug.Log($"The array contains a 0 at index {i}");
您可以直接打印并收集这些索引:
public int[] Total_Val;
void Start()
{
var zeroIndices = new List<int>();
for(var i = 0; i < Total_Val.Length; i++)
{
if(Total_Val[i] <= 0)
{
Debug.Log($"The array has 0 value at index {i}");
zeroIndices.Add(i);
}
}
Debug.Log($"All indices with 0 are: {zeroIndices.Count == 0 ? "<None>" : string.Join(",", zeroIndices)}");
}
public int[]总计;
void Start()
{
var zeroIndexes=新列表();
对于(变量i=0;i 如果(Total_Val[i]在这里使用null
这个词很让人困惑,因为null
有一个非常特殊的含义,0
肯定不是null
。我想你需要做的就是输出值i
(或者i+1
,如果你想让位置从1开始)在Debug.Log
Debug.Log(“位于“+i+”的数组,其值为“+Total_Val[i]);
在.NET中没有。引用类型可以是null
(无),但值类型不能是null
int
是一种值类型,因此它总是有一个值,即使该值为0。“我以为0会被视为null”-这是错误的。因为它是一个值类型的数组,所以它比这个复杂一点。但是基线:int I=0
不会被视为null
。永远不会。值类型变量最多可以“未初始化”。但是您的IDE可能会给出关于这一点的明确提示。