我有一个包含四个元素的数组 示例:
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};
基于此,我需要将上述值分配给另一个名为 b[5]
的变量。
如果标志为false
,它将添加
到 b 的现有值,
否则它将把 a
的值重置为 b
。
我尝试了以下代码,但似乎太长了
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;
如果所有标志为假,则计数值将被添加,如果为真,则计数值将被设置为重置计数 所以如上所述,它将是 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];
}
}
关于c# - 如何在 C# 中使用最少的代码根据分配给变量的标志对变量数组进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31176850/