测试c#中for循环的最后一次迭代

For*_*ame 1 c#

   public string GetUpgradesPurchasedVal()
   {
        string upgradesPurchasedVals = "";
        for (int i = 0; i < upgradesPurchased.Count; i++) {
            if (i == upgradesPurchased.Count) {
                upgradesPurchasedVals += upgradesPurchased [upgradeNames[i]].ToString () + "$";
            } else {
                upgradesPurchasedVals += upgradesPurchased [upgradeNames[i]].ToString () + "|";
            }
        }
        return upgradesPurchasedVals;
    }
Run Code Online (Sandbox Code Playgroud)

所以在这里我循环遍历Dictionary<string,bool> upgradesPurchased并且我试图确保for循环是否在行标记的最后一次迭代,if(i == upgradesPurchased.Count)在这种情况下我期望发生的是if i等于字典中的项目数然后字符串将收到"$"而不是"|" 但是看起来这条线完全被忽略了

简介:我需要测试for循环是否在最后一次迭代中,如果是,那么"$"应该添加到字符串中,如果不是"|" 应该添加到字符串中

Mur*_*nik 8

循环条件很i < upgradesPurchased.Count明显,条件if (i == upgradesPurchased.Count)永远不会成立.

由于迭代是从零开始的,因此最后一次迭代将具有i == upgradesPurchased.Count - 1.