C#重置for循环中的值(visual studio)

时间:2017-04-14 12:51:39

标签: c# visual-studio-2015

int number =0;
int [,]   type = {{900, 750, 1020 },
                           {300, 1000, 2700 },
                           {500, 700, 2100 },
                           {400, 900, 1780 },
                           {600, 1200, 1100},
                           {575, 1150, 1900 },
                           {600, 1020, 1700 } };
int[] loot = {200,800,1100,600,900,300};enter code here
for (int row = 0; row < type.Get Length(0); row++)
{
    for (int column = 0; column < type.Get Length(1); column++)
    {
        first = type[row, column];

        for (int  i = 0; i <= 5; i++)
        {

            if (loot[i] ==first)
            {
                number++;
                Console.Waterline("print"+number);

            }//end if
            else
            {

            }//end else

        }//end for

我尝试从类型到战利品的匹配值,但是我发现数字仅在运行后累积我想要问我每次运行for循环时如何将数字重置为0?这让我困扰了很久。感谢您的建议

1 个答案:

答案 0 :(得分:1)

要查找战利品和多维数组中的项目之间的匹配计数:

int number = type.Cast<int>().Count(i => loot.Contains(i)); // 6

工作原理:

多维数组有一个枚举器,它返回数组的扁平项(参见Using foreach with Arrays)。遗憾的是,枚举器不是通用的,因此您必须强制转换项目。获得多维数组中所有项目的序列后,您可以检查战利品数组是否包含每个项目(并计算此类项目的数量)。