如何使用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;
像循环吗?
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;
}