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

标签 c# arrays

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

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/

相关文章:

c# - 在 C# 中获取 String.indexof 之后的字符串

c# - Windows Phone 检查手机是否越狱或 root?

php - 将数组值传递给 colspan 以在 php 中创建列表

c - 将字符包读入数组,然后解析

c# - 在 Unity3D C# 中使用曲线分割纹理

c# - 进行网络 I/O 时 Stream.Read 是否被缓冲?

java - 如何在 Java 中连接两个 float 数组?

C++将对象放入数组

C# + IE9 JS引擎脉轮?

javascript - 视频阵列不工作