Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查哪个数组的值为0_C#_Unity3d - Fatal编程技术网

C# 检查哪个数组的值为0

C# 检查哪个数组的值为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) {

我正在循环一个有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)
                 {
                    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可能会给出关于这一点的明确提示。