如何使用C#中的最小代码,根据分配给变量的标志对变量数组进行分组

本文关键字:变量 标志 数组 分配 何使用 代码 | 更新日期: 2023-09-27 18:00:50

我有一个包含四个元素的数组示例:

int[] a = new int[5];

该值将类似于:a[0] = 10,a[1]=5,a[2]=15,a[3]=10,a[4]=0;

我有旗帜,

public bool[] flag = new bool[4]{false,false,false,false};

在此基础上,我需要将上述值分配给另一个名为CCD_ 2的变量。

如果标志是false,它将add转换为现有的b值,

否则它将把CCD_ 5的值重置为CCD_。

我已经尝试了以下代码,它似乎太长

count[0]=20,count[1]=20;count[2]=20;count[3]=20;
flag[0]=true,flag[1]=true,flag[2]=true,flag[3]=false;
void display(int[] count,int[]flag)
{         
    if (flag[0] == true)
    {
        resetcount[0] = count[0];
    }
    if(flag[1]==true)
    {
        resetcount[1] = count[1];
    }
    if (flag[2] == true)
    {
        resetcount[2] = count[2];
    }
    if(flag[3]==true)
    {
        resetcount[3] = count[3];
    }
    if (flag[0] == false)
    {
        resetcount[0] += count[0];
    }
    if (flag[1] == false)
    {
        resetcount[1] += count[1];
    }
    if (flag[2] == false)
    {
        resetcount[2] += count[2];
    }
    if (flag[3] == false)
    {
        resetcount[3] += count[3];
    }
}

此处为resetcount[0]=10,resetcount[1]=10,resetcount[2]=10,resetcount[3]=10;

如果all标志为false,则将添加计数值,如果为true,则将计数值设置为重置计数如上所述,它将是0,1,2

count[0]=20,count[1]=20;count[2]=20;count[3]=20;
flag[0]=true,flag[1]=true,flag[2]=true,flag[3]=false;
resetcount[0]=10,resetcount[1]=10,resetcount[2]=10,resetcount[3]=10;

所以现在重置计数是:

resetcount[0]=20,resetcount[1]=20,resetcount[2]=20,resetcount[3]=30;

如何使用C#中的最小代码,根据分配给变量的标志对变量数组进行分组

像循环吗?

count[0]=20,count[1]=20;count[2]=20;count[3]=20;
flag[0]=true,flag[1]=true,flag[2]=true,flag[3]=false;
void display(int[] count,int[]flag)
{         
  for (int i = 0 ; i<=3 ; i++)
  {
    if (flag[i])
    {
      resetcount[i] = count[i];
    }
    else
    {
      resetcount[i] += count[i];
    }

}

    public void Display(int[] resetCount, int[] count, bool[] flags)
    {
        for (int i = 0; i < resetCount.Count(); i++)
        {
            resetCount[i] = this.Calculate(resetCount[i], count[i], flags[i]);
        }
    }
    public int Calculate(int resetCount, int count, bool flag)
    {
        if (flag)
        {
            resetCount = count;
        }
        else
        {
            resetCount += count;
        }
        return resetCount;
    }